Inicio » Más con Symfony » Descubriendo el poder de la línea de comandos (segunda parte) » Utilizando la opción dry-run
Utilizando la opción dry-run
En ocasiones quieres ver el resultado de una tarea sin ejecutarla realmente. A
continuación se explican un par de trucos para conseguirlo.
En primer lugar, te recomendamos que utilices para esta opción un nombre estándar
que todo el mundo conoce y que por tanto, todo el mundo es capaz de interpretar
correctamente. Este nombre es dry-run y hasta la versión Symfony 1.3 la
clase sfCommandApplication añadía por defecto una opción llamada dry-run,
pero ahora debes añadirla manualmente (idealmente la añadirías en una clase base
como la mostrada en las secciones anteriores):
$this->addOption(new sfCommandOption('dry-run', null, sfCommandOption::PARAMETER_NONE, 'Executes a dry run');
Ahora ya puedes invocar la tarea de la siguiente forma:
./symfony my:task --dry-run
La opción dry-run indica que la tarea no debe realizar ningún cambio. Estas
últimas palabras son realmente las importantes: "no debe realizar ningún cambio".
Cuando se ejecuta en el modo dry-run, la tarea debe dejar todo tal y como se
encontraba antes de la ejecución, incluyendo entre otros:
- La base de datos: no insertes, actualices o borres ningún registro de la base
de datos. Esto se puede conseguir mediante una transacción.
- El sistema de archivos: no crees, modifiques ni borres ningún archivo o directorio
del sistema de archivos.
- Envío de emails: no envíes emails o envíalos a una dirección de prueba.
A continuación se muestra un ejemplo sencillo del uso de la opción dry-run:
$connection->beginTransaction();
// modifica la información de la base de datos
if ($options['dry-run'])
{
$connection->rollBack();
}
else
{
$connection->commit();
}
Puedes sugerir, comentar, criticar e informar de errores en contacto (arroba) librosweb.es