Más con Symfony

10.3. Gestores de configuración o Config Handlers

Los gestores de configuración son la parte esencial del sistema de configuración de Symfony. La tarea de los gestores de configuración es entender el significado de los archivos de configuración. Cada gestor de configuración es simplemente una clase que se emplea para transformar la configuración YAML en el código PHP que realmente se ejecuta cuando es necesario. Cada archivo de configuración dispone de su propio gestor de configuración que se configura en el archivo config_handlers.yml.

Los gestores de configuración no procesan los archivos YAML, ya que eso es tarea de sfYaml. En realidad, lo único que hacen los gestores de configuración es crear una serie de instrucciones PHP en base a la información YAML y guardar esas instrucciones en un archivo PHP que se incluye después durante la ejecución de la aplicación. La versión compilada de cada archivo de configuración YAML se encuentra en el directorio de la cache.

El gestor de configuración más utilizado es sfDefineEnvironmentConfigHandler, que permite definir opciones de configuración diferentes en función del entorno en el que se ejecute la aplicación. Este gestor se encarga por tanto de obtener solamente las opciones de configuración que se aplican al entorno actual.

¿No te parece suficiente? Pues echa un vistazo al gestor de configuración sfFactoryConfigHandler. Este gestor se encarga de compilar el archivo factories.yml, que es uno de los archivos de configuración más importantes de Symfony. Este gestor de configuración es muy especial porque convierte un archivo de configuración YAML en el código PHP que finalmente instanciará los objetos de tipo factoría (todos los componentes importantes que se han presentado en las secciones anteriores). Este gestor de configuración es mucho más avanzado que los otros gestores, ¿verdad?