|
@@ -33,6 +33,7 @@ class ConsoleIO extends BaseIO
|
|
|
protected $lastMessage;
|
|
|
protected $lastMessageErr;
|
|
|
private $startTime;
|
|
|
+ private $verbosityMap;
|
|
|
|
|
|
/**
|
|
|
* Constructor.
|
|
@@ -46,6 +47,13 @@ class ConsoleIO extends BaseIO
|
|
|
$this->input = $input;
|
|
|
$this->output = $output;
|
|
|
$this->helperSet = $helperSet;
|
|
|
+ $this->verbosityMap = array(
|
|
|
+ self::QUIET => OutputInterface::VERBOSITY_QUIET,
|
|
|
+ self::NORMAL => OutputInterface::VERBOSITY_NORMAL,
|
|
|
+ self::VERBOSE => OutputInterface::VERBOSITY_VERBOSE,
|
|
|
+ self::VERY_VERBOSE => OutputInterface::VERBOSITY_VERY_VERBOSE,
|
|
|
+ self::DEBUG => OutputInterface::VERBOSITY_DEBUG,
|
|
|
+ );
|
|
|
}
|
|
|
|
|
|
public function enableDebugging($startTime)
|
|
@@ -96,26 +104,32 @@ class ConsoleIO extends BaseIO
|
|
|
/**
|
|
|
* {@inheritDoc}
|
|
|
*/
|
|
|
- public function write($messages, $newline = true)
|
|
|
+ public function write($messages, $newline = true, $verbosity = self::NORMAL)
|
|
|
{
|
|
|
- $this->doWrite($messages, $newline, false);
|
|
|
+ $this->doWrite($messages, $newline, false, $verbosity);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* {@inheritDoc}
|
|
|
*/
|
|
|
- public function writeError($messages, $newline = true)
|
|
|
+ public function writeError($messages, $newline = true, $verbosity = self::NORMAL)
|
|
|
{
|
|
|
- $this->doWrite($messages, $newline, true);
|
|
|
+ $this->doWrite($messages, $newline, true, $verbosity);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @param array|string $messages
|
|
|
* @param bool $newline
|
|
|
* @param bool $stderr
|
|
|
+ * @param int $verbosity
|
|
|
*/
|
|
|
- private function doWrite($messages, $newline, $stderr)
|
|
|
+ private function doWrite($messages, $newline, $stderr, $verbosity)
|
|
|
{
|
|
|
+ $sfVerbosity = $this->verbosityMap[$verbosity];
|
|
|
+ if ($sfVerbosity > $this->output->getVerbosity()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
if (null !== $this->startTime) {
|
|
|
$memoryUsage = memory_get_usage() / 1024 / 1024;
|
|
|
$timeSpent = microtime(true) - $this->startTime;
|
|
@@ -125,30 +139,30 @@ class ConsoleIO extends BaseIO
|
|
|
}
|
|
|
|
|
|
if (true === $stderr && $this->output instanceof ConsoleOutputInterface) {
|
|
|
- $this->output->getErrorOutput()->write($messages, $newline);
|
|
|
+ $this->output->getErrorOutput()->write($messages, $newline, $sfVerbosity);
|
|
|
$this->lastMessageErr = join($newline ? "\n" : '', (array) $messages);
|
|
|
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- $this->output->write($messages, $newline);
|
|
|
+ $this->output->write($messages, $newline, $sfVerbosity);
|
|
|
$this->lastMessage = join($newline ? "\n" : '', (array) $messages);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* {@inheritDoc}
|
|
|
*/
|
|
|
- public function overwrite($messages, $newline = true, $size = null)
|
|
|
+ public function overwrite($messages, $newline = true, $size = null, $verbosity = self::NORMAL)
|
|
|
{
|
|
|
- $this->doOverwrite($messages, $newline, $size, false);
|
|
|
+ $this->doOverwrite($messages, $newline, $size, false, $verbosity);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* {@inheritDoc}
|
|
|
*/
|
|
|
- public function overwriteError($messages, $newline = true, $size = null)
|
|
|
+ public function overwriteError($messages, $newline = true, $size = null, $verbosity = self::NORMAL)
|
|
|
{
|
|
|
- $this->doOverwrite($messages, $newline, $size, true);
|
|
|
+ $this->doOverwrite($messages, $newline, $size, true, $verbosity);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -156,8 +170,9 @@ class ConsoleIO extends BaseIO
|
|
|
* @param bool $newline
|
|
|
* @param int|null $size
|
|
|
* @param bool $stderr
|
|
|
+ * @param int $verbosity
|
|
|
*/
|
|
|
- private function doOverwrite($messages, $newline, $size, $stderr)
|
|
|
+ private function doOverwrite($messages, $newline, $size, $stderr, $verbosity)
|
|
|
{
|
|
|
// messages can be an array, let's convert it to string anyway
|
|
|
$messages = join($newline ? "\n" : '', (array) $messages);
|
|
@@ -168,21 +183,21 @@ class ConsoleIO extends BaseIO
|
|
|
$size = strlen(strip_tags($stderr ? $this->lastMessageErr : $this->lastMessage));
|
|
|
}
|
|
|
// ...let's fill its length with backspaces
|
|
|
- $this->doWrite(str_repeat("\x08", $size), false, $stderr);
|
|
|
+ $this->doWrite(str_repeat("\x08", $size), false, $stderr, $verbosity);
|
|
|
|
|
|
// write the new message
|
|
|
- $this->doWrite($messages, false, $stderr);
|
|
|
+ $this->doWrite($messages, false, $stderr, $verbosity);
|
|
|
|
|
|
$fill = $size - strlen(strip_tags($messages));
|
|
|
if ($fill > 0) {
|
|
|
// whitespace whatever has left
|
|
|
- $this->doWrite(str_repeat(' ', $fill), false, $stderr);
|
|
|
+ $this->doWrite(str_repeat(' ', $fill), false, $stderr, $verbosity);
|
|
|
// move the cursor back
|
|
|
- $this->doWrite(str_repeat("\x08", $fill), false, $stderr);
|
|
|
+ $this->doWrite(str_repeat("\x08", $fill), false, $stderr, $verbosity);
|
|
|
}
|
|
|
|
|
|
if ($newline) {
|
|
|
- $this->doWrite('', true, $stderr);
|
|
|
+ $this->doWrite('', true, $stderr, $verbosity);
|
|
|
}
|
|
|
|
|
|
if ($stderr) {
|