Nivel de verbosidad de los comandos en Symfony

En Symfony se puede especificar el nivel de verbosidad de los comandos deseado y emplear condiciones para su salida

Contenido modificable

Si ves errores o quieres modificar/añadir contenidos, puedes crear un pull request. Gracias

La consola tiene cinco niveles de verbosidad, definidos en la OutputInterface:

Valor Significado Opción de consola
_OutputInterface::VERBOSITYQUIET No muestra ningún mensaje -q o --quiet
_OutputInterface::VERBOSITYNORMAL El valor por defecto de verbosidad (ninguna)
_OutputInterface::VERBOSITYVERBOSE Incrementa la verbosidad de los mensajes -v
_OutputInterface::VERBOSITY_VERYVERBOSE Mensajes informativos no esenciales -vv
_OutputInterface::VERBOSITYDEBUG Mensajes de debug -vvv

El stacktrace de excepciones entero se muestra si el nivel de verbosidad es VERBOSITY_VERBOSE o superior.

Es posible imprimir un mensaje en un comando sólo para un nivel de verbosidad especificado. Por ejemplo:

if ($output->getVerbosity() >= OutputInterface::VERBOSITY_VERBOSE) {
    $output->writeln(...);
}

Hay también métodos más semánticos que puedes utilizar para testear cada uno de los niveles de verbosidad:

if ($output->isQuiet()) {
    // ...
}

if ($output->isVerbose()) {
    // ...
}

if ($output->isVeryVerbose()) {
    // ...
}

if ($output->isDebug()) {
    // ...
}

Cuando se utiliza el nivel quiet todo el output se suprime por lo que el método write() se devuelve sin contenido.

El MonologBridge proporciona una clase ConsoleHandler que te permite mostrar mensahes en la consola. Esta forma es más limpia que agrupar los outputs con condiciones. Puedes leer el artículo Cómo configurar Monolog para mostrar mensajes de consola.