Viewing file: Output.php (4.06 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */
namespace Symfony\Component\Console\Output;
use Symfony\Component\Console\Formatter\OutputFormatterInterface; use Symfony\Component\Console\Formatter\OutputFormatter;
/** * Base class for output classes. * * There are five levels of verbosity: * * * normal: no option passed (normal output) * * verbose: -v (more output) * * very verbose: -vv (highly extended output) * * debug: -vvv (all debug output) * * quiet: -q (no output) * * @author Fabien Potencier <fabien@symfony.com> * * @api */ abstract class Output implements OutputInterface { private $verbosity; private $formatter;
/** * Constructor. * * @param integer $verbosity The verbosity level (one of the VERBOSITY constants in OutputInterface) * @param Boolean $decorated Whether to decorate messages * @param OutputFormatterInterface|null $formatter Output formatter instance (null to use default OutputFormatter) * * @api */ public function __construct($verbosity = self::VERBOSITY_NORMAL, $decorated = false, OutputFormatterInterface $formatter = null) { $this->verbosity = null === $verbosity ? self::VERBOSITY_NORMAL : $verbosity; $this->formatter = $formatter ?: new OutputFormatter(); $this->formatter->setDecorated($decorated); }
/** * {@inheritdoc} */ public function setFormatter(OutputFormatterInterface $formatter) { $this->formatter = $formatter; }
/** * {@inheritdoc} */ public function getFormatter() { return $this->formatter; }
/** * {@inheritdoc} */ public function setDecorated($decorated) { $this->formatter->setDecorated($decorated); }
/** * {@inheritdoc} */ public function isDecorated() { return $this->formatter->isDecorated(); }
/** * {@inheritdoc} */ public function setVerbosity($level) { $this->verbosity = (int) $level; }
/** * {@inheritdoc} */ public function getVerbosity() { return $this->verbosity; }
public function isQuiet() { return self::VERBOSITY_QUIET === $this->verbosity; }
public function isVerbose() { return self::VERBOSITY_VERBOSE <= $this->verbosity; }
public function isVeryVerbose() { return self::VERBOSITY_VERY_VERBOSE <= $this->verbosity; }
public function isDebug() { return self::VERBOSITY_DEBUG <= $this->verbosity; }
/** * {@inheritdoc} */ public function writeln($messages, $type = self::OUTPUT_NORMAL) { $this->write($messages, true, $type); }
/** * {@inheritdoc} */ public function write($messages, $newline = false, $type = self::OUTPUT_NORMAL) { if (self::VERBOSITY_QUIET === $this->verbosity) { return; }
$messages = (array) $messages;
foreach ($messages as $message) { switch ($type) { case OutputInterface::OUTPUT_NORMAL: $message = $this->formatter->format($message); break; case OutputInterface::OUTPUT_RAW: break; case OutputInterface::OUTPUT_PLAIN: $message = strip_tags($this->formatter->format($message)); break; default: throw new \InvalidArgumentException(sprintf('Unknown output type given (%s)', $type)); }
$this->doWrite($message, $newline); } }
/** * Writes a message to the output. * * @param string $message A message to write to the output * @param Boolean $newline Whether to add a newline or not */ abstract protected function doWrite($message, $newline); }
|