Manejo de múltiples entornos
Los desarrolladores a menudo desean un comportamiento diferente del sistema dependiendo de si una aplicación se ejecuta en un entorno de desarrollo o producción. Por ejemplo, una salida de error detallada es algo que sería útil mientras se desarrolla una aplicación, pero también puede plantear un problema de seguridad cuando «en vivo». En entornos de desarrollo, es posible que desee herramientas cargadas que no se cargan en entornos de producción, etc.
Los entornos definidos
De forma predeterminada, Higgs tiene tres entornos definidos.
production
para la produccióndevelopment
para el desarrollopruebas
para pruebas de PHPUnit
Importante
The environment testing
is reserved for PHPUnit testing. It
tiene condiciones especiales integradas en el marco en varios lugares para ayudar
con ese. No puedes usarlo para tu desarrollo.
Si desea otro entorno, por ejemplo, para la puesta en escena, puede agregar entornos personalizados. Consulte Agregar entornos.
Entorno de configuración
La constante del MEDIO AMBIENTE
Para configurar su entorno, Higgs viene con la constante ENTORNO
.
Si configura $_SERVER['HIGGS_ENVIRONMENT']
, se utilizará el valor,
de lo contrario, el valor predeterminado es production
.
Esto se puede configurar de varias maneras dependiendo de la configuración de su servidor.
.env
El método más sencillo para configurar la variable está en su archivo .env .
HIGGS_ENVIRONMENT = desarrollo
Nota
You can change the HIGGS_ENVIRONMENT
value in .env file by spark env
command:
producción de php spark env
apache
Esta variable de servidor se puede configurar en su archivo .htaccess o Apache configuración usando SetEnv<https://httpd.apache.org/docs/2.4/mod/mod_env.html#setenv> _.
Desarrollo SetEnv HIGGS_ENVIRONMENT
nginx
En nginx, debes pasar la variable de entorno a través de fastcgi_params
para que aparezca bajo la variable $_SERVER
. Esto le permite trabajar en el
nivel de host virtual, en lugar de usar env para configurarlo para todo el servidor, aunque eso
Funcionaría bien en un servidor dedicado. Luego modificarías la configuración de tu servidor a algo
como:
servidor {
nombre_servidor localhost;
incluir conf/defaults.conf;
raíz /var/www;
ubicación ~* \.php$ {
fastcgi_param HIGGS_ENVIRONMENT "producción";
incluya conf/fastcgi-php.conf;
}
}
Hay métodos alternativos disponibles para nginx y otros servidores, o puede elimine esta lógica por completo y establezca la constante según la dirección IP del servidor (por ejemplo).
Además de afectar algunos comportamientos básicos del marco (consulte la siguiente sección), puede utilizar esta constante en su propio desarrollo para diferenciar en qué entorno se está ejecutando.
Agregar entornos
Para agregar entornos personalizados, solo necesita agregarles archivos de inicio.
Archivos de arranque
Higgs requiere que se encuentre un script PHP que coincida con el nombre del entorno. en APPPATH/Config/Boot. Estos archivos pueden contener cualquier personalización que le gustaría hacer para su entorno, ya sea actualizando la pantalla de error configuraciones, cargar herramientas de desarrollador adicionales o cualquier otra cosa. Estos son cargado automáticamente por el sistema. Los siguientes archivos ya están creados en una instalación nueva:
desarrollo.php
producción.php
prueba.php
Por ejemplo, si desea agregar un entorno staging
para la puesta en escena, todo lo que necesita
hacer es:
Copie APPPATH/Config/Boot/production.php a staging.php.
Personaliza la configuración en staging.php si lo deseas.
Confirmando el entorno actual
Para confirmar el entorno actual, simplemente haga eco de la constante ENTORNO
.
También puedes verificar el entorno actual con el comando spark env
:
entorno de chispa php
Efectos sobre el comportamiento del marco predeterminado
Hay algunos lugares en el sistema de Higgs donde el MEDIOAMBIENTE
Se utiliza constante. Esta sección describe cómo se comporta el marco predeterminado.
Es afectado.
Error al reportar
Establecer la constante MEDIOAMBIENTE
en un valor de development
causará
todos los errores de PHP se mostrarán en el navegador cuando ocurran.
Por el contrario, establecer la constante en production
desactivará todos los errores.
producción. Deshabilitar el informe de errores en producción es una
buenas prácticas de seguridad .