tutorial - ¿Cuál es la idea detrás de las carpetas de entorno en Yii2 y cómo usarlo?
yii2 basic (2)
En primer lugar, no necesita colocar controladores y vistas en la carpeta de entorno. environment
carpeta de environment
contiene archivos que contienen diferentes configuraciones para diferentes entornos.
Por ejemplo, en el archivo frontend/web/index.php
, le conviene configurar YII_ENV
para YII_ENV
en el entorno de producción y para desarrollarlo en el entorno de desarrollo. En environment
carpeta del environment
este archivo ya está disponible con esas configuraciones específicas en carpetas específicas.
Como se explica aquí , todo lo que necesita hacer es ejecutar el comando init
y elegir su entorno y colocará los archivos específicos del entorno en su ubicación correcta.
He leído la documentación de Yii2 varias veces. También busqué en Google y no pude encontrar nada útil todavía.
El problema es que no entiendo el concepto de las carpetas de entorno. Por favor déjame explicar:
- Puedo usar ramas en Git (para desarrollo, montaje y producción)
- * Los archivos * -local.conf son ignorados por Git y no serán enviados a la puesta en escena ni a la producción de ningún modo.
¿Por qué tengo que duplicar todos mis controladores, vistas y otros archivos en environment / dev & environment / prod ?
¿En qué carpetas tengo que hacer mi desarrollo?
¿Cuál es el procedimiento de implementación para las carpetas de entorno? ¿Debo llamar a init cada vez que envío mis cambios al servidor de producción?
Lo más probable es que ignore la carpeta de entornos a menos que tenga una necesidad muy específica de hacer lo contrario.
Todo su código debe ir a carpetas common
, frontend
, console
o backend
- backend
. common
, estos son los puntos de entrada disponibles por defecto para su aplicación, donde colocará su lógica de controlador. Obviamente no tienes que usarlos todos, simplemente usando frontend
podría ser suficiente dependiendo de tus necesidades específicas.
Pero, de nuevo, si eliges la plantilla avanzada, es probable que uses una combinación ... como decir, common
, backend
y frontend
La carpeta de entornos
Las carpetas de entorno corresponden a las opciones que tiene cuando ejecuta ./init
. Eso es para nombrar:
- 0) Desarrollo
- 1) Producción
Contienen todos los archivos que se editan y / o agregan cuando ejecuta el comando ./init
. Estos incluyen todos los archivos que son ignorados (y por lo tanto nunca creados) por el VCS (git).
Estamos hablando de archivos como archivos * -local.php que, por razones obvias, nunca deberían tener versiones. Pero también las secuencias de comandos de entrada que cambian según el entorno que esté inicializando. Por ejemplo, quiere depuración y cierre de sesión cuando está en producción, pero en desarrollo. Estas son cosas que no puede configurar en el nivel del archivo de configuración, ya que deben configurarse antes de la maqueta de la aplicación Yii o que usted sabe que tendrá que ser predeterminado cada vez que se inicialice el entorno.
Podría imaginarse agregar otro entorno con el nombre de preproducción, por ejemplo, que inicialice su aplicación exactamente como el entorno de producción, excepto con el registro habilitado. Para esto, debe copiar la carpeta de environments/prod
, modificar los scripts de entrada según sus necesidades y agregar la opción en environments/index.php
.
El ./init
solo necesita ejecutarse una vez después de clonar la rama. Si es grande en CI, entonces su servidor de CI puede necesitar ejecutar el script ./init
en cada ejecución. Sin embargo, esto podría depender de cómo lo configuró. Tendrá que volver a ejecutarlo si ha realizado cambios en las carpetas de entorno que desea aplicar.
común, consola y * finaliza
Esto probablemente ya lo sepas, pero solo en caso de que alguien se esté preguntando.
- common: contiene lógica común a toda su aplicación, desde archivos de configuración a modelos
- frontend: todo lo que pertenece a su interfaz web frontend, también puede tener sus propios modelos, etc.
- backend: igual que el anterior pero permite una lógica separada entre la aplicación frontend y backend.
- consola: para acceder a su aplicación a través de la línea de comandos con
./yii controller/action
Esto es generalmente donde sucede toda la magia, no es necesario duplicar ningún código.