División jerárquica parcial basada en el marco YII2
controlador
- Simplemente use la capa de transmisión transparente como parámetro, vuelva a encapsular la clase base (algunas funciones de autenticación, token y otras se agregan más adelante)
Divida la capa del modelo en tres capas: servicio (capa de servicio), BO (objeto de datos/capa de procesamiento), DAO (capa de persistencia)
- Servicio: principalmente se ocupa de la lógica comercial compleja. Un controlador en el módulo corresponde a un subdirectorio de servicio, y un método corresponde a una clase, que puede satisfacer la independencia y la cohesión de la lógica comercial compleja.
- BO: Es el principal responsable de obtener datos, como obtener datos de DB, datos de caché, datos de interfaz externa, procesamiento de datos de embalaje y diseño sigue el principio de singleza del método.
- DAO: Es el principal responsable de la persistencia de datos. No hay código de procesamiento de lógica comercial en la operación de DB. Solo es agregar, eliminar, modificar y verificar las operaciones. Puede permitir un pequeño formato de datos.
Reencapsulación de las clases de configuración
- El entorno ambiente que no usa YII se divide actualmente en tres entornos: Dev, Test y ProD. Los tres entornos son independientes. Se usan directamente para agregar depuración y run_mode en el php.ini en el entorno PHP en ejecución actual. Esto se utiliza para decidir si habilita el modo de depuración y para decidir qué archivo de configuración de entorno usar.
Reencapsulación de clases de manejo de excepciones
- Se dirige principalmente a la convergencia de excepciones que ocurren en la lógica de negocios, y gestiona códigos de excepción e información de excepción de manera unificada.
Reempaquetaje de configuración constante
- Converge las constantes dispersas en sus respectivos códigos comerciales en una constante y defina la clase constante de acuerdo con el bloque de negocios.
Módulo SQLMAP agregado
- Todas las declaraciones SQL deben definirse en SQLMAP y operarse con el procesamiento de comandos en DB reencapsulado. La mayor ventaja de usar SQLMAP es facilitar la administración y la auditoría de SQL y reducir la resistencia al rendimiento de la aplicación de SQL complejo.
Módulo de caché agregado
- Todas las declaraciones de clave de caché deben definirse en caché y operar caché junto con la reencapsulación del procesamiento de caché en la biblioteca. La mayor ventaja de usar SQLMAP es facilitar las auditorías de la clave y la gestión del tiempo de caché, reducir los conflictos clave y evitar la penetración de caché y las avalanchas.
Módulo de verificación de parámetros agregado
- Según la lógica empresarial, algunos datos comerciales de entrada se pueden verificar, como la necesidad, la longitud, etc., y la verificación de la función anónima también se puede pasar.
Biblioteca de biblioteca agregada
- Principalmente algunos componentes de la herramienta de procesamiento
Reescribir la respuesta
- Diseñado completamente según Restapi, todo el retorno está unificado como JSON
Se agregó una capa de middleware
- Realice las operaciones requeridas para la configuración de acuerdo con el módulo, como la autenticación, el filtrado y la carga anti-ataques de middleware, como la carga a pedido.
Se agregó cola de mensajes/cola de mensajes retrasados
- Integre BeanStalk como un servicio de cola de mensajes y admite colas de mensajes retrasadas
Herramientas de registro de reempaquetado
- Use mensajes para procesar los requisitos de escritura de registro concurrente de forma asincrónica. Los registros de producción se pueden usar en diferentes aplicaciones. Se pueden abrir múltiples procesos al mismo tiempo utilizando un servidor para procesar la redacción de registros.
Se agregaron búsqueda de texto completo
- Sincronice MySQL basado en ElasticSearch para hacer el servicio de búsqueda de texto completo
Todos los cambios anteriores no implican los cambios de biblioteca central de YII2, por lo que YII2 puede actualizarse normalmente en principio. Además, todos los componentes centrales en YII2 también se pueden usar normalmente. Se recomienda usarlos en el nivel redefinido para permitir el desacoplamiento de negocios y la convergencia comercial.
La referencia de configuración demo.run_mode = dev/test/pro demo.debug = true corresponde al desarrollo, la prueba y los entornos en línea respectivamente. Tenga en cuenta que la depuración es falsa en el modo Prod.