Lo nuevo en Symfony 3.2. Las mejoras de la consola (parte 1)

Fecha publicación:
Autor:

En esta nueva versión el componente Consola recibirá una gran cantidad de nuevas funcionalidades, en su mayoría enfocadas a mejorar la experiencia de uso por parte del desarrollador.

Los Alias para los comandos ya no se muestran como comandos separados.

Las mejores prácticas recomiendan que cuando queramos construir comandos deben tener una lógica similar a lo utilizado a la hora de construir namespaces, para asi evitar la colisión entre comandos y además para mejorar el orden de la aplicación. Sin embargo, para comandos que se ejecutan constantemente es muy bueno poder definir un atajo.

Mirando el ejemplo anterior sin contar con un alias, el comando a ejecutarse en la consola sería el siguiente:

php bin/console app:tarea:nombre:muy:largo

Con el alias el comando quedaría de la siguiente manera:

php bin/console tarea1

En versiones previas de Symfony aunque este era un solo comando en la consola este se mostraba como dos comandos:

Ahora en Symfony 3.2 aparecen agrupados:

Los errores son mostrados aun cuando se este usando el modo silencioso o quiet mode

Cuando se adicionaba el modificador -q o –quiet al momento de ejecutar un comando de Symfony, la salida del comando quedaba configurada con el nivel de depuración OutputInterface::VERBOSITY_QUIET. Esto hacia que el comando nos mostrara ningún mensaje, ni siquiera los mensajes de error.

En Symfony 3.2 esto ha cambiado. Ahora se ocultan todos los mensajes menos los que se encuentran en el nivel de error. Esto es muy bueno porque asi no queda la aplicación con un posible error oculto.

Se ha mejorado el soporte para la aplicaciones diseñadas para ejecutarse como un comando.

En Symfony es posible construir una aplicación que se ejecute con un único comando; pero esto requería de unos ajustes para poder lograrlo.

El concepto es algo extraño; pero muy interesante si llegamos a necesitar crear aplicaciones especializadas en una única tarea, dando la posibilidad de pensar en Symfony como una herramienta para construir aplicaciones que corran como comandos del sistema.

La idea es que podamos ejecutar el comando de la siguiente manera:

php comando

Ahora en Symfony 3.2 se ha mejorado el soporte de esta característica.

Lo primero es definir el comando como se venía haciendo:

Una forma más simple de probar los comandos.

Probar un comando de Symfony era innecesariamente complejo además de tener que llegar a ejecutar instrucciones del propio lenguaje. Por ejemplo si la prueba quiere simular la escritura de un texto por parte del usuario , el código sería el siguiente:

En Symfony 3.2 Se simplifico esto adicionando un método nuevo llamado setInputs al helper CommandTester. Ahora solo se debe pasar un arreglo con el contenido que el usuario debería teclear.


Eguiluz, J. (2016, 07). New in Symfony 3.2: Console Improvements (Part 1). Obtenido 10, 2016, de http://symfony.com/blog/new-in-symfony-3-2-console-improvements-part-1