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.

Namespace: Cake\Console
Located at Console/ConsoleIo.php

Method Detail

__constructsource public

__construct( Cake\Console\ConsoleOutput $out null , Cake\Console\ConsoleOutput $err null , Cake\Console\ConsoleInput $in null , Cake\Console\HelperRegistry $helpers null )

Constructor

Parameters

Cake\Console\ConsoleOutput $out optional null
A ConsoleOutput object for stdout.
Cake\Console\ConsoleOutput $err optional null
A ConsoleOutput object for stderr.
Cake\Console\ConsoleInput $in optional null
A ConsoleInput object for stdin.
Cake\Console\HelperRegistry $helpers optional null
A HelperRegistry instance

_getInputsource protected

_getInput( string $prompt , string|null $options , string|null $default )

Prompts 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

string
Either the default value, or the user-provided input.

asksource public

ask( string $prompt , string|null $default null )

Prompts the user for input, and returns it.

Parameters

string $prompt
Prompt text.
string|null $default optional null
Default input value.

Returns

mixed
Either the default value, or the user-provided input.

askChoicesource public

askChoice( string $prompt , string|array $options , string|null $default null )

Prompts 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 null
Default input value.

Returns

mixed
Either the default value, or the user-provided input.

errsource public

err( string|array $message '' , integer $newlines 1 )

Outputs 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
integer $newlines optional 1
Number of newlines to append

helpersource public

helper( string $name , array $settings [] )

Render 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\Helper
The created helper instance.

hrsource public

hr( integer $newlines 0 , integer $width 79 )

Outputs a series of minus characters to the standard output, acts as a visual separator.

Parameters

integer $newlines optional 0
Number of newlines to pre- and append
integer $width optional 79
Width of the line, defaults to 79

levelsource public

level( null|integer $level null )

Get/set the current output level.

Parameters

null|integer $level optional null
The current output level.

Returns

integer
The current output level.

nlsource public

nl( integer $multiplier 1 )

Returns a single or multiple linefeeds sequences.

Parameters

integer $multiplier optional 1
Number of times the linefeed sequence should be repeated

Returns

string
string

outsource public

out( string|array $message '' , integer $newlines 1 , integer $level Cake\Console\ConsoleIo::NORMAL )

Outputs 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
integer $newlines optional 1
Number of newlines to append
integer $level optional Cake\Console\ConsoleIo::NORMAL
The message's output level, see above.

Returns

integer|boolean
Returns the number of bytes returned from writing to stdout.

outputAssource public

outputAs( integer $mode )

Change the output mode of the stdout stream

Parameters

integer $mode
The output mode.

See

Cake\Console\ConsoleOutput::outputAs()

overwritesource public

overwrite( array|string $message , integer $newlines 1 , integer $size null )

Overwrite 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.
integer $newlines optional 1
Number of newlines to append.
integer $size optional null
The number of bytes to overwrite. Defaults to the length of the last message output.

quietsource public

quiet( string|array $message , integer $newlines 1 )

Output at all levels.

Parameters

string|array $message
A string or an array of strings to output
integer $newlines optional 1
Number of newlines to append

Returns

integer|boolean
Returns the number of bytes returned from writing to stdout.

setLoggerssource public

setLoggers( integer|boolean $enable )

Connects 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

integer|boolean $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.

stylessource public

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

Add a new output style or get defined styles.

Parameters

string $style optional null
The style to get or create.
array|boolean|null $definition optional null
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.

See

Cake\Console\ConsoleOutput::styles()

verbosesource public

verbose( string|array $message , integer $newlines 1 )

Output at the verbose level.

Parameters

string|array $message
A string or an array of strings to output
integer $newlines optional 1
Number of newlines to append

Returns

integer|boolean
Returns the number of bytes returned from writing to stdout.

Constants summary

integer NORMAL

Output constant for making normal shells.

1
integer QUIET

Output constants for making quiet shells.

0
integer VERBOSE

Output constant making verbose shells.

2

Properties summary

$_errsource

protected Cake\Console\ConsoleOutput

The error stream

$_helperssource

protected Cake\Console\HelperRegistry

The helper registry.

$_insource

protected Cake\Console\ConsoleInput

The input stream

$_lastWrittensource

protected integer

The number of bytes last written to the output stream used when overwriting the previous message.

$_levelsource

protected integer

The current output level.

$_outsource

protected Cake\Console\ConsoleOutput

The output stream

© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
http://api.cakephp.org/3.1/class-Cake.Console.ConsoleIo.html