Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. Output.php

class Output

Base class for output classes.

There are six 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 (only output errors)
  • silent: --silent (no output)

@author Fabien Potencier <fabien@symfony.com>

Hierarchy

  • class \Symfony\Component\Console\Output\Output implements \Symfony\Component\Console\Output\OutputInterface

Expanded class hierarchy of Output

7 string references to 'Output'
BlockReferenceExpression::compile in vendor/twig/twig/src/Node/Expression/BlockReferenceExpression.php
CliDumper::supportsColors in vendor/symfony/var-dumper/Dumper/CliDumper.php
EventDispatcher::doDispatch in vendor/composer/composer/src/Composer/EventDispatcher/EventDispatcher.php
Triggers the listeners of an event.
OptimizerNodeVisitor::optimizePrintNode in vendor/twig/twig/src/NodeVisitor/OptimizerNodeVisitor.php
Optimizes print nodes.
ParentExpression::compile in vendor/twig/twig/src/Node/Expression/ParentExpression.php

... See full list

File

vendor/symfony/console/Output/Output.php, line 31

Namespace

Symfony\Component\Console\Output
View source
abstract class Output implements OutputInterface {
    private int $verbosity;
    private OutputFormatterInterface $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);
    }
    public function setFormatter(OutputFormatterInterface $formatter) : void {
        $this->formatter = $formatter;
    }
    public function getFormatter() : OutputFormatterInterface {
        return $this->formatter;
    }
    public function setDecorated(bool $decorated) : void {
        $this->formatter
            ->setDecorated($decorated);
    }
    public function isDecorated() : bool {
        return $this->formatter
            ->isDecorated();
    }
    public function setVerbosity(int $level) : void {
        $this->verbosity = $level;
    }
    public function getVerbosity() : int {
        return $this->verbosity;
    }
    public function isSilent() : bool {
        return self::VERBOSITY_SILENT === $this->verbosity;
    }
    public function isQuiet() : bool {
        return self::VERBOSITY_QUIET === $this->verbosity;
    }
    public function isVerbose() : bool {
        return self::VERBOSITY_VERBOSE <= $this->verbosity;
    }
    public function isVeryVerbose() : bool {
        return self::VERBOSITY_VERY_VERBOSE <= $this->verbosity;
    }
    public function isDebug() : bool {
        return self::VERBOSITY_DEBUG <= $this->verbosity;
    }
    public function writeln(string|iterable $messages, int $options = self::OUTPUT_NORMAL) : void {
        $this->write($messages, true, $options);
    }
    public function write(string|iterable $messages, bool $newline = false, int $options = self::OUTPUT_NORMAL) : void {
        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.
     */
    protected abstract function doWrite(string $message, bool $newline) : void;

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
Output::$formatter private property
Output::$verbosity private property
Output::doWrite abstract protected function Writes a message to the output. 3
Output::getFormatter public function Returns current output formatter instance. Overrides OutputInterface::getFormatter
Output::getVerbosity public function Gets the current verbosity of the output. Overrides OutputInterface::getVerbosity
Output::isDebug public function Returns whether verbosity is debug (-vvv). Overrides OutputInterface::isDebug
Output::isDecorated public function Gets the decorated flag. Overrides OutputInterface::isDecorated
Output::isQuiet public function Returns whether verbosity is quiet (-q). Overrides OutputInterface::isQuiet
Output::isSilent public function
Output::isVerbose public function Returns whether verbosity is verbose (-v). Overrides OutputInterface::isVerbose
Output::isVeryVerbose public function Returns whether verbosity is very verbose (-vv). Overrides OutputInterface::isVeryVerbose
Output::setDecorated public function Sets the decorated flag. Overrides OutputInterface::setDecorated 1
Output::setFormatter public function Overrides OutputInterface::setFormatter 1
Output::setVerbosity public function Sets the verbosity of the output. Overrides OutputInterface::setVerbosity 1
Output::write public function Writes a message to the output. Overrides OutputInterface::write
Output::writeln public function Writes a message to the output and adds a newline at the end. Overrides OutputInterface::writeln
Output::__construct public function 2
OutputInterface::OUTPUT_NORMAL public constant
OutputInterface::OUTPUT_PLAIN public constant
OutputInterface::OUTPUT_RAW public constant
OutputInterface::VERBOSITY_DEBUG public constant
OutputInterface::VERBOSITY_NORMAL public constant
OutputInterface::VERBOSITY_QUIET public constant
OutputInterface::VERBOSITY_SILENT public constant
OutputInterface::VERBOSITY_VERBOSE public constant
OutputInterface::VERBOSITY_VERY_VERBOSE public constant
RSS feed
Powered by Drupal