Class ConsoleOutput
Object wrapper for outputting information from a shell application. Can be connected to any stream resource that can be used with fopen()
Can generate colorized output on consoles that support it. There are a few built in styles
- errorError messages.
- warningWarning messages.
- infoInformational messages.
- commentAdditional text.
- questionMagenta text used for user prompts
By defining styles with addStyle() you can create custom console styles.
Using styles in output
You can format console output using tags with the name of the style to apply. From inside a shell object
$this->out('<warning>Overwrite:</warning> foo.php was overwritten.');This would create orange 'Overwrite:' text, while the rest of the text would remain the normal color. See ConsoleOutput::styles() to learn more about defining your own styles. Nested styles are not supported at this time.
Constants
Property Summary
- 
        $_backgroundColors protected staticarraybackground colors used in colored output. 
- 
        $_foregroundColors protected staticarraytext colors used in colored output. 
- 
        $_options protected staticstringformatting options for colored output 
- 
        $_output protectedresourceFile handle for output. 
- 
        $_outputAs protectedintThe current output type. Manipulated with ConsoleOutput::outputAs(); 
- 
        $_styles protected staticarrayStyles that are available as tags in console output. You can modify these styles with ConsoleOutput::styles() 
Method Summary
- 
          __construct() publicConstruct the output object. 
- 
          __destruct() publicClean up and close handles 
- 
          _replaceTags() protectedReplace tags with color codes. 
- 
          _write() protectedWrites a message to the output stream. 
- 
          outputAs() publicGet/Set the output type to use. The output type how formatting tags are treated. 
- 
          styleText() publicApply styling to text. 
- 
          styles() publicGet the current styles offered, or append new ones in. 
- 
          write() publicOutputs a single or multiple messages to stdout or stderr. If no parameters are passed, outputs just a newline. 
Method Detail
__construct() ¶ public
__construct(string $stream = 'php://stdout')Construct the output object.
Checks for a pretty console environment. Ansicon and ConEmu allows pretty consoles on windows, and is supported.
Parameters
- 
                string$stream optional
- The identifier of the stream to write output to. 
_replaceTags() ¶ protected
_replaceTags(array $matches): stringReplace tags with color codes.
Parameters
- 
                array$matches
- An array of matches to replace. 
Returns
string_write() ¶ protected
_write(string $message): int|boolWrites a message to the output stream.
Parameters
- 
                string$message
- Message to write. 
Returns
int|boolThe number of bytes returned from writing to output.
outputAs() ¶ public
outputAs(int|null $type = null): int|nullGet/Set the output type to use. The output type how formatting tags are treated.
Parameters
- 
                int|null$type optional
- The output type to use. Should be one of the class constants. 
Returns
int|nullEither null or the value if getting.
styleText() ¶ public
styleText(string $text): stringApply styling to text.
Parameters
- 
                string$text
- Text with styling tags. 
Returns
stringString with color codes added.
styles() ¶ public
styles(string|null $style = null, array|bool|null $definition = null): mixedGet the current styles offered, or append new ones in.
Get a style definition
$output->styles('error');Get all the style definitions
$output->styles();Create or modify an existing style
$output->styles('annoy', ['text' => 'purple', 'background' => 'yellow', 'blink' => true]);Remove a style
$this->output->styles('annoy', false);Parameters
- 
                string|null$style optional
- The style to get or create. 
- 
                array|bool|null$definition optional
- The array definition of the style to change or create a style or false to remove a style. 
Returns
mixedIf you are getting styles, the style or null will be returned. If you are creating/modifying styles true will be returned.
write() ¶ public
write(string|array $message, int $newlines = 1): int|boolOutputs a single or multiple messages to stdout or stderr. If no parameters are passed, outputs just a newline.
Parameters
- 
                string|array$message
- A string or an array of strings to output 
- 
                int$newlines optional
- Number of newlines to append 
Returns
int|boolThe number of bytes returned from writing to output.
