944 063 154

Blog

Acceder a la configuración de Symfony con sfConfig desde una tarea

Publicado enDesarrollo y Programación

En ocasiones es posible que, al crear una tarea que debería ejecutarse desde línea de comandos en una aplicación que ha sido escrita con Symfony, necesitemos tomar algunos valores concretos del archivo de configuración. De esta forma, y haciéndolo a través de sfConfig, evitaremos hardcodear el código interno y los problemas que ello conlleva. Para poder hacerlo, necesitaremos especificar el nombre de la aplicación de la que queremos leer el archivo de configuración. En el caso de que no lo indiquemos, Symfony no será capaz de buscar los valores en ningún archivo de configuración.

Los archivos de configuración tienen la misión de transformarse en código PHP; ya que la mayoría de las opciones que ofrecen únicamente pueden utilizarse por los frameworks del lenguaje de programación. Es compatible con esta forma de acceder a la configuración, por ejemplo, el framework Symfony. Sin embargo, algunas veces necesitamos poder acceder a esos archivos a través del código de la aplicación. Independientemente de que vaya a tener lugar dentro de una acción, en una determinada plantilla o en una clase propia. A todas ellas se puede acceder mediante la opción definida previamente en el archivo correspondiente (settings.yml, app.yml o module.yml); pero también podemos hacerlo utilizando una clase especial: la clase sfConfig.

Configurando con sfConfig

La clase sfConfig es una clase que permite el acceso a las opciones de configuración desde cualquier punto del código. Esto se debe a que se trata de un registro de configuración que facilita un método que puedes utilizar el cualquier parte del código. De esta manera haremos que el código sea más accesible y, sobre todo, sea más sencillo solucionar cualquier problema en el mismo.

Cuando, por ejemplo, queramos hacer que Symfony busque valores dentro del archivo de configuración podemos recurrir al parámetro –application. Este parámetro será el encargado de invocar la tarea que queremos ejecutar; así como de permitir que se muestre la información que necesitamos. Pero la principal ventaja de utilizar la tarea sfConfig es que, además, podremos hacerlo sin romper el código de la aplicación.


php symfony namespace:tarea --application=frontend

Como vemos, en ocasiones realizar modificaciones en el código de una aplicación es más fácil de lo que parece. Especialmente si tenemos en cuenta que evitamos que el código se rompa provocando que la aplicación deje de funcionar. Por ello, es recomendable dedicar un tiempo a conocer algunas clases de los lenguajes de programación y frameworks; el aprendizaje continuo es la mejor forma de mejorar nuestro código.