| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 | 
							- <?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\OutputFormatter;
 
- use Symfony\Component\Console\Formatter\OutputFormatterInterface;
 
- /**
 
-  * 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>
 
-  */
 
- abstract class Output implements OutputInterface
 
- {
 
-     private $verbosity;
 
-     private $formatter;
 
-     /**
 
-      * @param int|null                      $verbosity The verbosity level (one of the VERBOSITY constants in OutputInterface)
 
-      * @param bool                          $decorated Whether to decorate messages
 
-      * @param OutputFormatterInterface|null $formatter Output formatter instance (null to use default OutputFormatter)
 
-      */
 
-     public function __construct(?int $verbosity = self::VERBOSITY_NORMAL, bool $decorated = false, OutputFormatterInterface $formatter = null)
 
-     {
 
-         $this->verbosity = $verbosity ?? self::VERBOSITY_NORMAL;
 
-         $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(bool $decorated)
 
-     {
 
-         $this->formatter->setDecorated($decorated);
 
-     }
 
-     /**
 
-      * {@inheritdoc}
 
-      */
 
-     public function isDecorated()
 
-     {
 
-         return $this->formatter->isDecorated();
 
-     }
 
-     /**
 
-      * {@inheritdoc}
 
-      */
 
-     public function setVerbosity(int $level)
 
-     {
 
-         $this->verbosity = $level;
 
-     }
 
-     /**
 
-      * {@inheritdoc}
 
-      */
 
-     public function getVerbosity()
 
-     {
 
-         return $this->verbosity;
 
-     }
 
-     /**
 
-      * {@inheritdoc}
 
-      */
 
-     public function isQuiet()
 
-     {
 
-         return self::VERBOSITY_QUIET === $this->verbosity;
 
-     }
 
-     /**
 
-      * {@inheritdoc}
 
-      */
 
-     public function isVerbose()
 
-     {
 
-         return self::VERBOSITY_VERBOSE <= $this->verbosity;
 
-     }
 
-     /**
 
-      * {@inheritdoc}
 
-      */
 
-     public function isVeryVerbose()
 
-     {
 
-         return self::VERBOSITY_VERY_VERBOSE <= $this->verbosity;
 
-     }
 
-     /**
 
-      * {@inheritdoc}
 
-      */
 
-     public function isDebug()
 
-     {
 
-         return self::VERBOSITY_DEBUG <= $this->verbosity;
 
-     }
 
-     /**
 
-      * {@inheritdoc}
 
-      */
 
-     public function writeln($messages, int $options = self::OUTPUT_NORMAL)
 
-     {
 
-         $this->write($messages, true, $options);
 
-     }
 
-     /**
 
-      * {@inheritdoc}
 
-      */
 
-     public function write($messages, bool $newline = false, int $options = self::OUTPUT_NORMAL)
 
-     {
 
-         if (!is_iterable($messages)) {
 
-             $messages = [$messages];
 
-         }
 
-         $types = self::OUTPUT_NORMAL | self::OUTPUT_RAW | self::OUTPUT_PLAIN;
 
-         $type = $types & $options ?: self::OUTPUT_NORMAL;
 
-         $verbosities = self::VERBOSITY_QUIET | self::VERBOSITY_NORMAL | self::VERBOSITY_VERBOSE | self::VERBOSITY_VERY_VERBOSE | self::VERBOSITY_DEBUG;
 
-         $verbosity = $verbosities & $options ?: self::VERBOSITY_NORMAL;
 
-         if ($verbosity > $this->getVerbosity()) {
 
-             return;
 
-         }
 
-         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;
 
-             }
 
-             $this->doWrite($message ?? '', $newline);
 
-         }
 
-     }
 
-     /**
 
-      * Writes a message to the output.
 
-      */
 
-     abstract protected function doWrite(string $message, bool $newline);
 
- }
 
 
  |