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

  • error Error messages.
  • warning Warning messages.
  • info Informational messages.
  • comment Additional text.
  • question Magenta 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.

Direct Subclasses

Package: Cake\Console
Copyright: Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
License: MIT License
Location: Cake/Console/ConsoleOutput.php

Constants summary

Properties summary

  • $_backgroundColors protected static
    array
    background colors used in colored output.
  • $_foregroundColors protected static
    array
    text colors used in colored output.
  • $_lastWritten protected
    integer

    The number of bytes last written to the output stream used when overwriting the previous message.

  • $_options protected static
    string
    formatting options for colored output
  • $_output protected
    resource
    File handle for output.
  • $_outputAs protected
    integer
    The current output type. Manipulated with ConsoleOutput::outputAs();
  • $_styles protected static
    array

    Styles that are available as tags in console output. You can modify these styles with ConsoleOutput::styles()

Method Summary

  • __construct() public
    Construct the output object.
  • __destruct() public
    Clean up and close handles
  • _replaceTags() protected
    Replace tags with color codes.
  • _write() protected
    Writes a message to the output stream.
  • outputAs() public
    Get/Set the output type to use. The output type how formatting tags are treated.
  • overwrite() public
    Overwrite some already output text.
  • styleText() public
    Apply styling to text.
  • styles() public
    Get the current styles offered, or append new ones in.
  • write() public

    Outputs a single or multiple messages to stdout. If no parameters are passed, outputs just a newline.

Method Detail

__construct()source 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 'php://stdout'
The identifier of the stream to write output to.

__destruct()source public

__destruct( )

Clean up and close handles

_replaceTags()source protected

_replaceTags( array $matches )

Replace tags with color codes.

Parameters

array $matches
An array of matches to replace.

Returns

string

_write()source protected

_write( string $message )

Writes a message to the output stream.

Parameters

string $message
Message to write.

Returns

boolean
success

outputAs()source public

outputAs( integer $type null )

Get/Set the output type to use. The output type how formatting tags are treated.

Parameters

integer $type optional null
The output type to use. Should be one of the class constants.

Returns

mixed
Either null or the value if getting.

overwrite()source public

overwrite( array|string $message , integer $newlines 1 , integer|null $size null )

Overwrite some already output text.

Useful for building progress bars, or when you want to replace text already output to the screen with new text.

Warning You cannot overwrite text that contains newlines.

Parameters

array|string $message
The message to output.
integer $newlines optional 1
Number of newlines to append.
integer|null $size optional null

The number of bytes to overwrite. Defaults to the length of the last message output.

styleText()source public

styleText( string $text )

Apply styling to text.

Parameters

string $text
Text with styling tags.

Returns

string
String with color codes added.

styles()source public

styles( string $style null , array $definition null )

Get the current styles offered, or append new ones in.

Get a style definition

$this->output->styles('error');

Get all the style definitions

$this->output->styles();

Create or modify an existing style

$this->output->styles('annoy', array('text' => 'purple', 'background' => 'yellow', 'blink' => true));

Remove a style

$this->output->styles('annoy', false);

Parameters

string $style optional null
The style to get or create.
array $definition optional null

The array definition of the style to change or create a style or false to remove a style.

Returns

mixed

If you are getting styles, the style or null will be returned. If you are creating/modifying styles true will be returned.


write()source public

write( string|array $message , integer $newlines 1 )

Outputs a single or multiple messages to stdout. If no parameters are passed, outputs just a newline.

Parameters

string|array $message
A string or an array of strings to output
integer $newlines optional 1
Number of newlines to append

Returns

integer
Returns the number of bytes returned from writing to stdout.

Properties detail

$_backgroundColorssource

protected static array

background colors used in colored output.

array(
    'black' => 40,
    'red' => 41,
    'green' => 42,
    'yellow' => 43,
    'blue' => 44,
    'magenta' => 45,
    'cyan' => 46,
    'white' => 47
)

$_foregroundColorssource

protected static array

text colors used in colored output.

array(
    'black' => 30,
    'red' => 31,
    'green' => 32,
    'yellow' => 33,
    'blue' => 34,
    'magenta' => 35,
    'cyan' => 36,
    'white' => 37
)

$_lastWrittensource

protected integer

The number of bytes last written to the output stream used when overwriting the previous message.

$_optionssource

protected static string

formatting options for colored output

array(
    'bold' => 1,
    'underline' => 4,
    'blink' => 5,
    'reverse' => 7,
)

$_outputsource

protected resource

File handle for output.

$_outputAssource

protected integer

The current output type. Manipulated with ConsoleOutput::outputAs();

self::COLOR

$_stylessource

protected static array

Styles that are available as tags in console output. You can modify these styles with ConsoleOutput::styles()

array(
    'emergency' => array('text' => 'red', 'underline' => true),
    'alert' => array('text' => 'red', 'underline' => true),
    'critical' => array('text' => 'red', 'underline' => true),
    'error' => array('text' => 'red', 'underline' => true),
    'warning' => array('text' => 'yellow'),
    'info' => array('text' => 'cyan'),
    'debug' => array('text' => 'yellow'),
    'success' => array('text' => 'green'),
    'comment' => array('text' => 'blue'),
    'question' => array('text' => 'magenta'),
    'notice' => array('text' => 'cyan')
)

© 2005–2017 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/2.10/class-ConsoleOutput.html