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.