Cambiar parámetros de una aplicación Symfony2 desde VirtualHost

La forma habitual de configurar una aplicación son Symfony2 es mediante el archivo parameters.ini, sin embargo es posible también realizar la configuración de estos parámetros desde la propia configuración del dominio en Apache. Esto nos permitiría por ejemplo configurar la conexión con la base de datos sin necesidad de tocar el código fuente de la aplicación. Esto es posible gracias a la flexibilidad con la que está construido el contenedor de servicios.

Symfony2 coge cualquier variable de entorno del servidor web que comience con la cadena «SYMFONY__» y la añade al contenedor de servicios para que estén disponibles en su activación.

En el siguiente ejemplo se crean 4 variables de entorno que indican la configuración de la base de datos. Se indica la base de datos, el servidor, el usuario y la contraseña.

<VirtualHost *:80>
    ServerName      example.com
    DocumentRoot    "/home/www/example.com/htdocs/web"
    SetEnv          SYMFONY__DATABASE__NAME example_db
    SetEnv          SYMFONY__DATABASE__HOST 192.168.1.1
    SetEnv          SYMFONY__DATABASE__USER userdb
    SetEnv          SYMFONY__DATABASE__PASSWORD pwddb
</VirtualHost>

Estas variables son accesibles desde PHP eliminando el prefijo «SYMFONY__», sustituyendo los «__» por «.» y pasando los caracteres a minúsculas.

De esta forma el archivo de configuración parameters.ini quedaría así.

doctrine:
    dbal:
        driver    pdo_mysql
        dbname:   %database.name%
        host:     %database.host%
        user:     %database.user%
        password: %database.password%
Twitter Digg Delicious Stumbleupon Technorati Facebook Email

Los comentarios están cerrados.