Class ConsoleOutput
StubOutput makes testing shell commands/shell helpers easier.
You can use this class by injecting it into a ConsoleIo instance that your command/task/helper uses:
use Cake\Console\ConsoleIo;
use Cake\TestSuite\Stub\ConsoleOutput;
$output = new ConsoleOutput();
$io = new ConsoleIo($output);
Constants
Property Summary
-
$_backgroundColors protected static
arraybackground colors used in colored output.
-
$_foregroundColors protected static
arraytext colors used in colored output.
-
$_options protected static
arrayFormatting options for colored output.
-
$_out protected
arrayBuffered messages.
-
$_output protected
resourceFile handle for output.
-
$_outputAs protected
intThe current output type.
-
$_styles protected static
arrayStyles 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.
-
messages() public
Get the buffered output.
-
outputAs() public deprecated
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
Write output to the buffer.
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): string
Replace tags with color codes.
Parameters
-
array$matches An array of matches to replace.
Returns
string_write() ¶ protected
_write(string $message): int|bool
Writes a message to the output stream.
Parameters
-
string$message Message to write.
Returns
int|boolgetOutputAs() ¶ public
getOutputAs(): int
Get the output type on how formatting tags are treated.
Returns
intoutputAs() ¶ public
outputAs(int|null $type = null): int|null
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|nullsetOutputAs() ¶ 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
voidThrows
InvalidArgumentExceptionin case of a not supported output type.
styleText() ¶ public
styleText(string $text): string
Apply styling to text.
Parameters
-
string$text Text with styling tags.
Returns
stringstyles() ¶ public
styles(string|null $style = null, array|false|null $definition = null): array|true|null
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|nullwrite() ¶ public
write(string|string[] $message, int $newlines = 1): void
Write output to the buffer.
Parameters
-
string|string[]$message A string or an array of strings to output
-
int$newlines optional Number of newlines to append
Returns
voidProperty Detail
$_styles ¶ protected static
Styles that are available as tags in console output. You can modify these styles with ConsoleOutput::styles()
Type
array