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
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.
 - 
        $_out protected
array<string>Buffered messages.
 - 
        $_output protected
resourceFile handle for output.
 - 
        $_outputAs protected
intThe 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
 - 
          
messages() public
Get the buffered output.
 - 
          
output() public
Get the output as a string
 - 
          
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
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<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
intThe number of bytes returned from writing to output.
getOutputAs() ¶ public
getOutputAs(): int
      Get the output type on how formatting tags are treated.
Returns
intgetStyle() ¶ public
getStyle(string $style): array
      Gets the current styles offered
Parameters
- 
                
string$style The style to get.
Returns
arrayThe style or empty 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
voidThrows
InvalidArgumentExceptionin 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
voidstyleText() ¶ public
styleText(string $text): string
      Apply styling to text.
Parameters
- 
                
string$text Text with styling tags.
Returns
stringString with color codes added.
styles() ¶ public
styles(): array<string, mixed>
      Gets all the style definitions.
Returns
array<string, mixed>write() ¶ public
write(array<string>|string $message, int $newlines = 1): int
      Write output to the buffer.
Parameters
- 
                
array<string>|string$message A string or an array of strings to output
- 
                
int$newlines optional Number of newlines to append
Returns
int