Overview

Namespaces

  • Contrib
    • Bundle
      • CoverallsBundle
        • Console
        • Entity
      • CoverallsV1Bundle
        • Api
        • Collector
        • Command
        • Config
        • Entity
          • Git
    • Component
      • File
      • Log
      • System
        • Git
  • Guzzle
    • Batch
      • Exception
    • Cache
    • Common
      • Exception
    • Http
      • Curl
      • Exception
      • Message
      • QueryAggregator
    • Inflection
    • Iterator
    • Log
    • Parser
      • Cookie
      • Message
      • UriTemplate
      • Url
    • Plugin
      • Async
      • Backoff
      • Cache
      • Cookie
        • CookieJar
        • Exception
      • CurlAuth
      • ErrorResponse
        • Exception
      • History
      • Log
      • Md5
      • Mock
      • Oauth
    • Service
      • Builder
      • Command
        • Factory
        • LocationVisitor
          • Request
          • Response
      • Description
      • Exception
      • Resource
    • Stream
  • PHP
  • Psr
    • Log
  • Symfony
    • Component
      • Config
        • Definition
          • Builder
          • Exception
        • Exception
        • Loader
        • Resource
        • Util
      • Console
        • Command
        • Formatter
        • Helper
        • Input
        • Output
        • Tester
      • EventDispatcher
        • Debug
      • Finder
        • Adapter
        • Comparator
        • Exception
        • Expression
        • Iterator
        • Shell
      • Stopwatch
      • Yaml
        • Exception

Classes

  • ConsoleOutput
  • NullOutput
  • Output
  • StreamOutput

Interfaces

  • ConsoleOutputInterface
  • OutputInterface
  • Overview
  • Namespace
  • Class
  • Tree
  • Todo
  1: <?php
  2: 
  3: /*
  4:  * This file is part of the Symfony package.
  5:  *
  6:  * (c) Fabien Potencier <fabien@symfony.com>
  7:  *
  8:  * For the full copyright and license information, please view the LICENSE
  9:  * file that was distributed with this source code.
 10:  */
 11: 
 12: namespace Symfony\Component\Console\Output;
 13: 
 14: use Symfony\Component\Console\Formatter\OutputFormatterInterface;
 15: use Symfony\Component\Console\Formatter\OutputFormatter;
 16: 
 17: /**
 18:  * Base class for output classes.
 19:  *
 20:  * There are three levels of verbosity:
 21:  *
 22:  *  * normal: no option passed (normal output - information)
 23:  *  * verbose: -v (more output - debug)
 24:  *  * quiet: -q (no output)
 25:  *
 26:  * @author Fabien Potencier <fabien@symfony.com>
 27:  *
 28:  * @api
 29:  */
 30: abstract class Output implements OutputInterface
 31: {
 32:     private $verbosity;
 33:     private $formatter;
 34: 
 35:     /**
 36:      * Constructor.
 37:      *
 38:      * @param integer                  $verbosity The verbosity level (self::VERBOSITY_QUIET, self::VERBOSITY_NORMAL, self::VERBOSITY_VERBOSE)
 39:      * @param Boolean                  $decorated Whether to decorate messages or not (null for auto-guessing)
 40:      * @param OutputFormatterInterface $formatter Output formatter instance
 41:      *
 42:      * @api
 43:      */
 44:     public function __construct($verbosity = self::VERBOSITY_NORMAL, $decorated = null, OutputFormatterInterface $formatter = null)
 45:     {
 46:         $this->verbosity = null === $verbosity ? self::VERBOSITY_NORMAL : $verbosity;
 47:         $this->formatter = null === $formatter ? new OutputFormatter() : $formatter;
 48:         $this->formatter->setDecorated((Boolean) $decorated);
 49:     }
 50: 
 51:     /**
 52:      * Sets output formatter.
 53:      *
 54:      * @param OutputFormatterInterface $formatter
 55:      *
 56:      * @api
 57:      */
 58:     public function setFormatter(OutputFormatterInterface $formatter)
 59:     {
 60:         $this->formatter = $formatter;
 61:     }
 62: 
 63:     /**
 64:      * Returns current output formatter instance.
 65:      *
 66:      * @return  OutputFormatterInterface
 67:      *
 68:      * @api
 69:      */
 70:     public function getFormatter()
 71:     {
 72:         return $this->formatter;
 73:     }
 74: 
 75:     /**
 76:      * Sets the decorated flag.
 77:      *
 78:      * @param Boolean $decorated Whether to decorate the messages or not
 79:      *
 80:      * @api
 81:      */
 82:     public function setDecorated($decorated)
 83:     {
 84:         $this->formatter->setDecorated((Boolean) $decorated);
 85:     }
 86: 
 87:     /**
 88:      * Gets the decorated flag.
 89:      *
 90:      * @return Boolean true if the output will decorate messages, false otherwise
 91:      *
 92:      * @api
 93:      */
 94:     public function isDecorated()
 95:     {
 96:         return $this->formatter->isDecorated();
 97:     }
 98: 
 99:     /**
100:      * Sets the verbosity of the output.
101:      *
102:      * @param integer $level The level of verbosity
103:      *
104:      * @api
105:      */
106:     public function setVerbosity($level)
107:     {
108:         $this->verbosity = (int) $level;
109:     }
110: 
111:     /**
112:      * Gets the current verbosity of the output.
113:      *
114:      * @return integer The current level of verbosity
115:      *
116:      * @api
117:      */
118:     public function getVerbosity()
119:     {
120:         return $this->verbosity;
121:     }
122: 
123:     /**
124:      * Writes a message to the output and adds a newline at the end.
125:      *
126:      * @param string|array $messages The message as an array of lines or a single string
127:      * @param integer      $type     The type of output
128:      *
129:      * @api
130:      */
131:     public function writeln($messages, $type = 0)
132:     {
133:         $this->write($messages, true, $type);
134:     }
135: 
136:     /**
137:      * Writes a message to the output.
138:      *
139:      * @param string|array $messages The message as an array of lines or a single string
140:      * @param Boolean      $newline  Whether to add a newline or not
141:      * @param integer      $type     The type of output
142:      *
143:      * @throws \InvalidArgumentException When unknown output type is given
144:      *
145:      * @api
146:      */
147:     public function write($messages, $newline = false, $type = 0)
148:     {
149:         if (self::VERBOSITY_QUIET === $this->verbosity) {
150:             return;
151:         }
152: 
153:         $messages = (array) $messages;
154: 
155:         foreach ($messages as $message) {
156:             switch ($type) {
157:                 case OutputInterface::OUTPUT_NORMAL:
158:                     $message = $this->formatter->format($message);
159:                     break;
160:                 case OutputInterface::OUTPUT_RAW:
161:                     break;
162:                 case OutputInterface::OUTPUT_PLAIN:
163:                     $message = strip_tags($this->formatter->format($message));
164:                     break;
165:                 default:
166:                     throw new \InvalidArgumentException(sprintf('Unknown output type given (%s)', $type));
167:             }
168: 
169:             $this->doWrite($message, $newline);
170:         }
171:     }
172: 
173:     /**
174:      * Writes a message to the output.
175:      *
176:      * @param string  $message A message to write to the output
177:      * @param Boolean $newline Whether to add a newline or not
178:      */
179:     abstract protected function doWrite($message, $newline);
180: }
181: 
php-coveralls API documentation generated by ApiGen 2.8.0