Estoy escribiendo un artículo rápido sobre el tema, aunque probablemente la mayoría lo conozca. Sin embargo, mientras discutía con otros desarrolladores, me sucede que no todos conocen el sistema auto_prepend_file, que puede ser una forma práctica de administrar sus constantes.
Gestión de constantes de PHP según el entorno (DEV, PROD, receta, etc.)
Como sabemos, en muchos proyectos de desarrollo (y los proyectos de PHP no son una excepción) tendrás que gestionar un cierto número de constantes (ruta, urls, cuentas, etc.). Y estas constantes son generalmente diferentes entre desarrollo y producción.
Podemos reunir estas constantes en un archivo de configuración dentro de un proyecto, lo que puede ser una buena forma de hacerlo, pero ¿cómo gestionar adecuadamente el hecho de llevar las constantes de desarrollo en desarrollo y las constantes de producción en prod sin poner una serie de si?
Auto_prepend_file a través de php.ini
Hay un método bastante simple, que puede ser efectivo en este caso.
Las constantes deben centralizarse en un archivo PHP. Esto ya tiene el mérito de ponerlos a todos en el mismo lugar.
A continuación, usaremos la propiedad “ auto_prepend_file ” del archivo de configuración php.ini. Esto tendrá el efecto de cargar este archivo cada vez que se llame a un archivo PHP, antes de este último. Por lo tanto, estamos seguros de tener todas nuestras constantes antes de realizar el procesamiento PHP deseado (como para un include).
En el php.ini, la sintaxis es la siguiente cambiando la ruta al archivo para poner la tuya:
auto_prepend_file = /var/www/intranet/lib/config/prod_config.php
En la ruta anterior, verá en el nombre del archivo que hay «prod». Puede crear dos archivos, un dev_config.php y un prod_config.php. Entonces es suficiente, según el servidor a configurar, apuntar a uno u otro. Como sabe, hay un php.ini para el servidor apache y otro para la CLI. Puede optar por usar el mismo, o tener un archivo de configuración dedicado a la CLI, la operación es la misma.
Recuerdo por otro lado que este archivo se carga con cada llamada de un PHP. Por lo tanto, tenga cuidado de no tener ningún error en este archivo a riesgo de tener una cierta cantidad de registros.