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.

Namespace: Cake\Console

Constants summary

  • int
    COLOR
    2
  • string
    LF
    PHP_EOL
  • int
    PLAIN
    1
  • int
    RAW
    0

Properties summary

  • $_backgroundColors protected static
    array

    background colors used in colored output.

  • $_foregroundColors protected static
    array

    text colors used in colored output.

  • $_options protected static
    array

    Formatting options for colored output.

  • $_output protected
    resource

    File handle for output.

  • $_outputAs protected
    int

    The current output type.

  • $_styles protected static
    array

    Styles that are available as tags in console output.

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.

  • getOutputAs() public

    Get the output type on how formatting tags are treated.

  • outputAs() public

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

  • setOutputAs() public

    Set the output type on how formatting tags are treated.

  • 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 or stderr. If no parameters are passed, outputs just a newline.

Method Detail

__construct() public

__construct(mixed $stream)

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.

__destruct() public

__destruct()

Clean up and close handles

_replaceTags() protected

_replaceTags(mixed $matches)

Replace tags with color codes.

Parameters

array $matches

An array of matches to replace.

Returns

string

_write() protected

_write(mixed $message)

Writes a message to the output stream.

Parameters

string $message

Message to write.

Returns

int|bool

The number of bytes returned from writing to output.

getOutputAs() public

getOutputAs()

Get the output type on how formatting tags are treated.

Returns

int

outputAs() public

outputAs(mixed $type)

Get/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|null

Either null or the value if getting.

setOutputAs() public

setOutputAs(mixed $type)

Set the output type on how formatting tags are treated.

Parameters

int $type

The output type to use. Should be one of the class constants.

Throws

InvalidArgumentException
in case of a not supported output type.

styleText() public

styleText(mixed $text)

Apply styling to text.

Parameters

string $text

Text with styling tags.

Returns

string

String with color codes added.

styles() public

styles(mixed $style, mixed $definition)

Get 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|false|null $definition optional

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

Returns

array|true|null

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

write() public

write(mixed $message, mixed $newlines)

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

Parameters

string|string[] $message

A string or an array of strings to output

int $newlines optional

Number of newlines to append

Returns

int|bool

The number of bytes returned from writing to output.

Property Detail

$_backgroundColors protected static

background colors used in colored output.

Type

array

$_foregroundColors protected static

text colors used in colored output.

Type

array

$_options protected static

Formatting options for colored output.

Type

array

$_output protected

File handle for output.

Type

resource

$_outputAs protected

The current output type.

Type

int

$_styles protected static

Styles that are available as tags in console output.

You can modify these styles with ConsoleOutput::styles()

Type

array

© 2005–present 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/3.9/class-Cake.Console.ConsoleOutput.html