Las opciones de las tareas de Symfony están organizadas en dos grupos diferentes, las opciones y los argumentos.
13.3.1. Opciones
Las opciones son las que se pasan mediante guiones medios. Puedes añadirlas en la línea de comandos en cualquier orden. Pueden ir acompañadas de un valor o no, en cuyo caso actúan como un valor booleano. Normalmente las opciones disponen tanto de una versión larga como de una versión corta. La forma larga normalmente se indica mediante dos guiones medios, mientras que la opción corta sólo requiere de un guión medio.
Algunos ejemplos de opciones habituales son la de ayuda (--help
o -h
), la
opción de verbosidad (--quiet
o -q
) y la de versión (--version
o -V
).
Nota Las opciones de definen mediante la clase sfCommandOption
y se guardan en
una clase de tipo sfCommandOptionSet
.
13.3.2. Argumentos
Los argumentos permiten proporcionar información en la línea de comandos. Se deben especificar en el mismo orden en que se han definido y si incluyen algún espacio en blanco en su interior, se deben encerrar mediante comillas (también puedes aplicar el mecanismo de escape en los espacios). Los argumentos pueden ser opcionales u obligatorios, en cuyo caso se debe especificar un valor por defecto al definir el argumento.
Nota Los argumentos se definen mediante la clase sfCommandArgument
y se guardan
en una clase de tipo sfCommandArgumentSet
.
13.3.3. Argumentos y opciones por defecto
Las tareas de Symfony incluyen por defecto varios argumentos y opciones:
--help
(-H
): muestra este mensaje de ayuda.--quiet
(-q
): no muestra mensajes por pantalla.--trace
(-t
): activa la traza de ejecución, permitiendo accede a la traza completa.--version
(-V
): muestra la versión del programa.--color
: fuerza que los mensajes muestren colores ANSI.
13.3.4. Opciones especiales
El sistema de tareas de Symfony también incluye dos opciones especiales llamadas
application
y env
.
La opción application
es necesaria cuando quieres acceder a una instancia de
sfApplicationConfiguration
en lugar de una instancia de sfProjectConfiguration
.
Este es por ejemplo el caso cuando la tarea va a generar URL, ya que el enrutamiento
normalmente está asociado con la aplicación.
Cuando a una tarea se le pasa una opción llamada application
, Symfony la
detecta automáticamente y crea el correspondiente objeto sfApplicationConfiguration
en vez del objeto sfProjectConfiguration
. Como a las opciones se les puede
establecer un valor por defecto, para aprovechar esta característica no es necesario
indicar el nombre de la aplicación cada vez que se ejecuta la tarea.
Por su parte, la opción env
controla el entorno en el que se ejecuta la
tarea. Cuando no se indica esta opción, se utiliza el entorno test
. Al igual
que con la opción application
, puedes establecer un valor por defecto para
la opción env
y Symfony lo utilizará automáticamente.
Como application
y env
no están incluidas dentro de la lista de opciones por
defecto, es necesario incluirlas a mano en la tarea:
public function configure()
{
$this->addOptions(array(
new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED, 'The application name', 'frontend'),
new sfCommandOption('env', null, sfCommandOption::PARAMETER_REQUIRED, 'The environment', 'dev'),
));
}
Salvo que se indique lo contrario, la tarea del ejemplo anterior se ejecuta en
el entorno dev
de la aplicación frontend
.