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 promptssuccess
Green foreground textinfo.bg
Cyan background with black textwarning.bg
Yellow background with black texterror.bg
Red background with black textsuccess.bg
Green background with black text
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 static
array<string, int>
background colors used in colored output.
-
$_foregroundColors protected static
array<string, int>
text colors used in colored output.
-
$_options protected static
array<string, int>
Formatting options for colored output.
-
$_output protected
resource
File handle for output.
-
$_outputAs protected
int
The current output type.
-
$_styles protected static
array<string, 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.
-
getOutputAs() public
Get the output type on how formatting tags are treated.
-
getStyle() public
Gets the current styles offered
-
setOutputAs() public
Set the output type on how formatting tags are treated.
-
setStyle() public
Sets style.
-
styleText() public
Apply styling to text.
-
styles() public
Gets all the style definitions.
-
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(resource|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
-
resource|string
$stream optional The identifier of the stream to write output to.
Throws
Cake\Console\Exception\ConsoleException
If the given stream is not a valid resource.
_replaceTags() ¶ protected
_replaceTags(array<string, string> $matches): string
Replace tags with color codes.
Parameters
-
array<string, string>
$matches An array of matches to replace.
Returns
string
_write() ¶ protected
_write(string $message): int
Writes a message to the output stream.
Parameters
-
string
$message Message to write.
Returns
int
getOutputAs() ¶ public
getOutputAs(): int
Get the output type on how formatting tags are treated.
Returns
int
getStyle() ¶ public
getStyle(string $style): array
Gets the current styles offered
Parameters
-
string
$style The style to get.
Returns
array
setOutputAs() ¶ public
setOutputAs(int $type): void
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.
Returns
void
Throws
InvalidArgumentException
in case of a not supported output type.
setStyle() ¶ public
setStyle(string $style, array $definition): void
Sets style.
Creates or modifies an existing style.
$output->setStyle('annoy', ['text' => 'purple', 'background' => 'yellow', 'blink' => true]);
Remove a style
$this->output->setStyle('annoy', []);
Parameters
-
string
$style The style to set.
-
array
$definition The array definition of the style to change or create..
Returns
void
styleText() ¶ public
styleText(string $text): string
Apply styling to text.
Parameters
-
string
$text Text with styling tags.
Returns
string
styles() ¶ public
styles(): array<string, mixed>
Gets all the style definitions.
Returns
array<string, mixed>
write() ¶ public
write(list<string>|string $message, int $newlines = 1): int
Outputs a single or multiple messages to stdout or stderr. If no parameters are passed, outputs just a newline.
Parameters
-
list<string>|string
$message A string or an array of strings to output
-
int
$newlines optional Number of newlines to append
Returns
int