\Cake\ConsoleConsoleOutput

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.

Summary

Methods
Properties
Constants
__construct()
write()
styleText()
styles()
getOutputAs()
setOutputAs()
outputAs()
__destruct()
No public properties found
RAW
PLAIN
COLOR
LF
_replaceTags()
_write()
$_output
$_outputAs
$_foregroundColors
$_backgroundColors
$_options
$_styles
N/A
No private methods found
No private properties found
N/A

Constants

RAW

RAW = 0 : integer

Raw output constant - no modification of output text.

PLAIN

PLAIN = 1 : integer

Plain output - tags will be stripped.

COLOR

COLOR = 2 : integer

Color output - Convert known tags in to ANSI color escape codes.

LF

LF = PHP_EOL : string

Constant for a newline.

Properties

$_output

$_output : resource

File handle for output.

Type

resource

$_outputAs

$_outputAs : integer

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

Type

integer

$_foregroundColors

$_foregroundColors : array

text colors used in colored output.

Type

array

$_backgroundColors

$_backgroundColors : array

background colors used in colored output.

Type

array

$_options

$_options : array

Formatting options for colored output.

Type

array

$_styles

$_styles : array

Styles that are available as tags in console output.

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

Type

array

Methods

__construct()

__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

The identifier of the stream to write output to.

write()

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

Outputs 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

integer $newlines

Number of newlines to append

Returns

integer|boolean —

The number of bytes returned from writing to output.

styleText()

styleText(string  $text) : string

Apply styling to text.

Parameters

string $text

Text with styling tags.

Returns

string —

String with color codes added.

styles()

styles(string|null  $style = null, array|boolean|null  $definition = null) : mixed

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

The style to get or create.

array|boolean|null $definition

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.

getOutputAs()

getOutputAs() : integer

Get the output type on how formatting tags are treated.

Returns

integer

setOutputAs()

setOutputAs(integer  $type) : void

Set the output type on how formatting tags are treated.

Parameters

integer $type

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

Throws

\InvalidArgumentException

in case of a not supported output type.

outputAs()

outputAs(integer|null  $type = null) : integer|null

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

Parameters

integer|null $type

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

Returns

integer|null —

Either null or the value if getting.

__destruct()

__destruct() 

Clean up and close handles

_replaceTags()

_replaceTags(array  $matches) : string

Replace tags with color codes.

Parameters

array $matches

An array of matches to replace.

Returns

string

_write()

_write(string  $message) : integer|boolean

Writes a message to the output stream.

Parameters

string $message

Message to write.

Returns

integer|boolean —

The number of bytes returned from writing to output.