Class ShellDispatcher
Shell dispatcher handles dispatching cli commands.
Consult /bin/cake.php for how this class is used in practice.
Property Summary
Method Summary
-
__construct() public
Constructor
-
_bootstrap() protected
Initializes the environment and loads the CakePHP core.
-
_createShell() protected
Create the given shell name, and set the plugin property
-
_dispatch() protected
Dispatch a request.
-
_handleAlias() protected
If the input matches an alias, return the aliased shell name
-
_initEnvironment() protected
Defines current working environment.
-
_shellExists() protected
Check if a shell class exists for the given name.
-
addShortPluginAliases() public
For all loaded plugins, add a short alias
-
alias() public static
Add an alias for a shell command.
-
dispatch() public
Dispatches a CLI request
-
findShell() public
Get shell to use, either plugin shell or application shell
-
help() public
Shows console help. Performs an internal dispatch to the CommandList Shell
-
resetAliases() public static
Clear any aliases that have been set.
-
run() public static
Run the dispatcher
-
shiftArgs() public
Removes first argument and shifts other arguments up
Method Detail
__construct() ¶ public
__construct(array $args = [], bool $bootstrap = true)
Constructor
The execution of the script is stopped after dispatching the request with a status code of either 0 or 1 according to the result of the dispatch.
Parameters
-
array
$args optional the argv from PHP
-
bool
$bootstrap optional Should the environment be bootstrapped.
_bootstrap() ¶ protected
_bootstrap(): bool
Initializes the environment and loads the CakePHP core.
Returns
bool
_createShell() ¶ protected
_createShell(string $className, string $shortName): Cake\Console\Shell
Create the given shell name, and set the plugin property
Parameters
-
string
$className The class name to instantiate
-
string
$shortName The plugin-prefixed shell name
Returns
Cake\Console\Shell
_dispatch() ¶ protected
_dispatch(array $extra = []): bool
Dispatch a request.
Parameters
-
array
$extra optional Extra parameters that you can manually pass to the Shell to be dispatched. Built-in extra parameter is :
requested
: if used, will prevent the Shell welcome message to be displayed
Returns
bool
Throws
Cake\Console\Exception\MissingShellMethodException
_handleAlias() ¶ protected
_handleAlias(string $shell): string
If the input matches an alias, return the aliased shell name
Parameters
-
string
$shell Optionally the name of a plugin or alias
Returns
string
_initEnvironment() ¶ protected
_initEnvironment(): void
Defines current working environment.
Returns
void
Throws
Cake\Core\Exception\Exception
_shellExists() ¶ protected
_shellExists(string $shell): string|bool
Check if a shell class exists for the given name.
Parameters
-
string
$shell The shell name to look for.
Returns
string|bool
addShortPluginAliases() ¶ public
addShortPluginAliases(): array
For all loaded plugins, add a short alias
This permits a plugin which implements a shell of the same name to be accessed Using the shell name alone
Returns
array
alias() ¶ public static
alias(string $short, string|null $original = null): string|false
Add an alias for a shell command.
Aliases allow you to call shells by alternate names. This is most useful when dealing with plugin shells that you want to have shorter names for.
If you re-use an alias the last alias set will be the one available.
Usage
Aliasing a shell named ClassName:
$this->alias('alias', 'ClassName');
Getting the original name for a given alias:
$this->alias('alias');
Parameters
-
string
$short The new short name for the shell.
-
string|null
$original optional The original full name for the shell.
Returns
string|false
dispatch() ¶ public
dispatch(array $extra = []): int
Dispatches a CLI request
Converts a shell command result into an exit code. Null/True are treated as success. All other return values are an error.
Parameters
-
array
$extra optional Extra parameters that you can manually pass to the Shell to be dispatched. Built-in extra parameter is :
requested
: if used, will prevent the Shell welcome message to be displayed
Returns
int
findShell() ¶ public
findShell(string $shell): Cake\Console\Shell
Get shell to use, either plugin shell or application shell
All paths in the loaded shell paths are searched, handles alias dereferencing
Parameters
-
string
$shell Optionally the name of a plugin
Returns
Cake\Console\Shell
Throws
Cake\Console\Exception\MissingShellException
when errors are encountered.
help() ¶ public
help(): void
Shows console help. Performs an internal dispatch to the CommandList Shell
Returns
void
resetAliases() ¶ public static
resetAliases(): void
Clear any aliases that have been set.
Returns
void
run() ¶ public static
run(array $argv, array $extra = []): int
Run the dispatcher
Parameters
-
array
$argv The argv from PHP
-
array
$extra optional Extra parameters
Returns
int
shiftArgs() ¶ public
shiftArgs(): mixed
Removes first argument and shifts other arguments up
Returns
mixed