Class ConsoleIo
A wrapper around the various IO operations shell tasks need to do.
Packages up the stdout, stderr, and stdin streams providing a simple consistent interface for shells to use. This class also makes mocking streams easy to do in unit tests.
Constants
Property Summary
- 
        $_err protectedCake\Console\ConsoleOutputThe error stream 
- 
        $_helpers protectedCake\Console\HelperRegistryThe helper registry. 
- 
        $_in protectedCake\Console\ConsoleInputThe input stream 
- 
        $_lastWritten protectedintThe number of bytes last written to the output stream used when overwriting the previous message. 
- 
        $_level protectedintThe current output level. 
- 
        $_out protectedCake\Console\ConsoleOutputThe output stream 
Method Summary
- 
          __construct() publicConstructor 
- 
          _getInput() protectedPrompts the user for input, and returns it. 
- 
          ask() publicPrompts the user for input, and returns it. 
- 
          askChoice() publicPrompts the user for input based on a list of options, and returns it. 
- 
          err() publicOutputs a single or multiple error messages to stderr. If no parameters are passed outputs just a newline. 
- 
          helper() publicRender a Console Helper 
- 
          hr() publicOutputs a series of minus characters to the standard output, acts as a visual separator. 
- 
          level() publicGet/set the current output level. 
- 
          nl() publicReturns a single or multiple linefeeds sequences. 
- 
          out() publicOutputs a single or multiple messages to stdout. If no parameters are passed outputs just a newline. 
- 
          outputAs() public deprecatedChange the output mode of the stdout stream 
- 
          overwrite() publicOverwrite some already output text. 
- 
          quiet() publicOutput at all levels. 
- 
          setLoggers() publicConnects or disconnects the loggers to the console output. 
- 
          setOutputAs() publicChange the output mode of the stdout stream 
- 
          styles() publicAdd a new output style or get defined styles. 
- 
          verbose() publicOutput at the verbose level. 
Method Detail
__construct() ¶ public
__construct(Cake\Console\ConsoleOutput|null $out = null, Cake\Console\ConsoleOutput|null $err = null, Cake\Console\ConsoleInput|null $in = null, Cake\Console\HelperRegistry|null $helpers = null)Constructor
Parameters
- 
                Cake\Console\ConsoleOutput|null$out optional
- A ConsoleOutput object for stdout. 
- 
                Cake\Console\ConsoleOutput|null$err optional
- A ConsoleOutput object for stderr. 
- 
                Cake\Console\ConsoleInput|null$in optional
- A ConsoleInput object for stdin. 
- 
                Cake\Console\HelperRegistry|null$helpers optional
- A HelperRegistry instance 
_getInput() ¶ protected
_getInput(string $prompt, string|null $options, string|null $default): stringPrompts the user for input, and returns it.
Parameters
- 
                string$prompt
- Prompt text. 
- 
                string|null$options
- String of options. Pass null to omit. 
- 
                string|null$default
- Default input value. Pass null to omit. 
Returns
stringEither the default value, or the user-provided input.
ask() ¶ public
ask(string $prompt, string|null $default = null): mixedPrompts the user for input, and returns it.
Parameters
- 
                string$prompt
- Prompt text. 
- 
                string|null$default optional
- Default input value. 
Returns
mixedEither the default value, or the user-provided input.
askChoice() ¶ public
askChoice(string $prompt, string|array $options, string|null $default = null): mixedPrompts the user for input based on a list of options, and returns it.
Parameters
- 
                string$prompt
- Prompt text. 
- 
                string|array$options
- Array or string of options. 
- 
                string|null$default optional
- Default input value. 
Returns
mixedEither the default value, or the user-provided input.
err() ¶ public
err(string|array $message = '', int $newlines = 1): int|boolOutputs a single or multiple error messages to stderr. If no parameters are passed outputs just a newline.
Parameters
- 
                string|array$message optional
- A string or an array of strings to output 
- 
                int$newlines optional
- Number of newlines to append 
Returns
int|boolThe number of bytes returned from writing to stderr.
helper() ¶ public
helper(string $name, array $settings = []): Cake\Console\HelperRender a Console Helper
Create and render the output for a helper object. If the helper object has not already been loaded, it will be loaded and constructed.
Parameters
- 
                string$name
- The name of the helper to render 
- 
                array$settings optional
- Configuration data for the helper. 
Returns
Cake\Console\HelperThe created helper instance.
hr() ¶ public
hr(int $newlines = 0, int $width = 79): voidOutputs a series of minus characters to the standard output, acts as a visual separator.
Parameters
- 
                int$newlines optional
- Number of newlines to pre- and append 
- 
                int$width optional
- Width of the line, defaults to 79 
Returns
voidlevel() ¶ public
level(null|int $level = null): intGet/set the current output level.
Parameters
- 
                null|int$level optional
- The current output level. 
Returns
intThe current output level.
nl() ¶ public
nl(int $multiplier = 1): stringReturns a single or multiple linefeeds sequences.
Parameters
- 
                int$multiplier optional
- Number of times the linefeed sequence should be repeated 
Returns
stringout() ¶ public
out(string|array $message = '', int $newlines = 1, int $level = ConsoleIo::NORMAL): int|boolOutputs a single or multiple messages to stdout. If no parameters are passed outputs just a newline.
Output levels
There are 3 built-in output level. Shell::QUIET, Shell::NORMAL, Shell::VERBOSE.
The verbose and quiet output levels, map to the verbose and quiet output switches
present in most shells. Using Shell::QUIET for a message means it will always display.
While using Shell::VERBOSE means it will only display when verbose output is toggled.
Parameters
- 
                string|array$message optional
- A string or an array of strings to output 
- 
                int$newlines optional
- Number of newlines to append 
- 
                int$level optional
- The message's output level, see above. 
Returns
int|boolThe number of bytes returned from writing to stdout.
outputAs() ¶ public
outputAs(int $mode): voidChange the output mode of the stdout stream
Parameters
- 
                int$mode
- The output mode. 
Returns
voidSee Also
overwrite() ¶ public
overwrite(array|string $message, int $newlines = 1, int|null $size = null): voidOverwrite some already output text.
Useful for building progress bars, or when you want to replace text already output to the screen with new text.
Warning You cannot overwrite text that contains newlines.
Parameters
- 
                array|string$message
- The message to output. 
- 
                int$newlines optional
- Number of newlines to append. 
- 
                int|null$size optional
- The number of bytes to overwrite. Defaults to the length of the last message output. 
Returns
voidquiet() ¶ public
quiet(string|array $message, int $newlines = 1): int|boolOutput at all levels.
Parameters
- 
                string|array$message
- A string or an array of strings to output 
- 
                int$newlines optional
- Number of newlines to append 
Returns
int|boolThe number of bytes returned from writing to stdout.
setLoggers() ¶ public
setLoggers(int|bool $enable): voidConnects or disconnects the loggers to the console output.
Used to enable or disable logging stream output to stdout and stderr
If you don't wish all log output in stdout or stderr
through Cake's Log class, call this function with $enable=false.
Parameters
- 
                int|bool$enable
- Use a boolean to enable/toggle all logging. Use one of the verbosity constants (self::VERBOSE, self::QUIET, self::NORMAL) to control logging levels. VERBOSE enables debug logs, NORMAL does not include debug logs, QUIET disables notice, info and debug logs. 
Returns
voidsetOutputAs() ¶ public
setOutputAs(int $mode): voidChange the output mode of the stdout stream
Parameters
- 
                int$mode
- The output mode. 
Returns
voidSee Also
styles() ¶ public
styles(string|null $style = null, array|bool|null $definition = null): mixedAdd a new output style or get defined styles.
Parameters
- 
                string|null$style optional
- The style to get or create. 
- 
                array|bool|null$definition optional
- The array definition of the style to change or create a style or false to remove a style. 
Returns
mixedIf you are getting styles, the style or null will be returned. If you are creating/modifying styles true will be returned.
See Also
verbose() ¶ public
verbose(string|array $message, int $newlines = 1): int|boolOutput at the verbose level.
Parameters
- 
                string|array$message
- A string or an array of strings to output 
- 
                int$newlines optional
- Number of newlines to append 
Returns
int|boolThe number of bytes returned from writing to stdout.
Property Detail
$_lastWritten ¶ protected
The number of bytes last written to the output stream used when overwriting the previous message.
Type
int