Class CommandRunner
Run CLI commands for the provided application.
- Cake\Console\CommandRunner implements Cake\Event\EventDispatcherInterface uses Cake\Event\EventDispatcherTrait
Properties summary
Inherited Properties
Method Summary
-
__construct() public
Constructor -
bootstrap() protected
Application bootstrap wrapper. -
checkCollection() protected
Check the created CommandCollection -
createShell() protected
The wrapper for creating shell instances. -
eventManager() public
Get/set the application's event manager. -
getEventManager() public
Get the application's event manager or the global one. -
getShell() protected
Get the shell instance for a given command name -
loadRoutes() protected
Ensure that the application's routes are loaded. -
longestCommandName() protected
Build the longest command name that exists in the collection -
resolveName() protected
Resolve the command name into a name that exists in the collection. -
run() public
Run the command contained in $argv. -
runCommand() protected
Execute a Command class. -
runShell() protected
Execute a Shell class. -
setAliases() public
Replace the entire alias map for a runner. -
setEventManager() public
Get/set the application's event manager.
Method Detail
__construct() public ¶
__construct( Cake\Core\ConsoleApplicationInterface
$app , string $root 'cake' , Cake\Console\CommandFactoryInterface
$factory null )
Constructor
Parameters
-
Cake\Core\ConsoleApplicationInterface
$app - The application to run CLI commands for.
- string $root optional 'cake'
- The root command name to be removed from argv.
-
Cake\Console\CommandFactoryInterface
$factory optional null - Command factory instance.
bootstrap() protected ¶
bootstrap( )
Application bootstrap wrapper.
Calls bootstrap()
and events()
if application implements EventApplicationInterface
.
After the application is bootstrapped and events are attached, plugins are bootstrapped
and have their events attached.
checkCollection() protected ¶
checkCollection( mixed $commands , string $method )
Check the created CommandCollection
Deprecated
Parameters
- mixed $commands
- The CommandCollection to check, could be anything though.
- string $method
- The method that was used.
Throws
createShell() protected ¶
createShell( string $className , Cake\Console\ConsoleIo
$io )
The wrapper for creating shell instances.
Parameters
- string $className
- Shell class name.
-
Cake\Console\ConsoleIo
$io - The IO wrapper for the created shell class.
Returns
eventManager() public ¶
eventManager( Cake\Event\EventManager
$events null )
Get/set the application's event manager.
If the application does not support events and this method is used as a setter, an exception will be raised.
Deprecated
Parameters
-
Cake\Event\EventManager
$events optional null - The event manager to set.
Returns
Implementation of
getShell() protected ¶
getShell( Cake\Console\ConsoleIo
$io , Cake\Console\CommandCollection
$commands , string $name )
Get the shell instance for a given command name
Parameters
-
Cake\Console\ConsoleIo
$io - The IO wrapper for the created shell class.
-
Cake\Console\CommandCollection
$commands - The command collection to find the shell in.
- string $name
- The command name to find
Returns
loadRoutes() protected ¶
loadRoutes( )
Ensure that the application's routes are loaded.
Console commands and shells often need to generate URLs.
longestCommandName() protected ¶
longestCommandName( Cake\Console\CommandCollection
$commands , array $argv )
Build the longest command name that exists in the collection
Build the longest command name that matches a defined command. This will traverse a maximum of 3 tokens.
Parameters
-
Cake\Console\CommandCollection
$commands - The command collection to check.
- array $argv
- The CLI arguments.
Returns
An array of the resolved name and modified argv.
resolveName() protected ¶
resolveName( Cake\Console\CommandCollection
$commands , Cake\Console\ConsoleIo
$io , string $name )
Resolve the command name into a name that exists in the collection.
Apply backwards compatible inflections and aliases. Will step forward up to 3 tokens in $argv to generate a command name in the CommandCollection. More specific command names take precedence over less specific ones.
Parameters
-
Cake\Console\CommandCollection
$commands - The command collection to check.
-
Cake\Console\ConsoleIo
$io - ConsoleIo object for errors.
- string $name
- The name
Returns
The resolved class name
run() public ¶
run( array $argv , Cake\Console\ConsoleIo
$io null )
Run the command contained in $argv.
Use the application to do the following:
- Bootstrap the application
- Create the CommandCollection using the console() hook on the application.
- Trigger the
Console.buildCommands
event of auto-wiring plugins. - Run the requested command.
Parameters
- array $argv
- The arguments from the CLI environment.
-
Cake\Console\ConsoleIo
$io optional null - The ConsoleIo instance. Used primarily for testing.
Returns
The exit code of the command.
Throws
runCommand() protected ¶
runCommand( Cake\Console\Command
$command , array $argv , Cake\Console\ConsoleIo
$io )
Execute a Command class.
Parameters
-
Cake\Console\Command
$command - The command to run.
- array $argv
- The CLI arguments to invoke.
-
Cake\Console\ConsoleIo
$io - The console io
Returns
Exit code
runShell() protected ¶
runShell( Cake\Console\Shell
$shell , array $argv )
Execute a Shell class.
Parameters
-
Cake\Console\Shell
$shell - The shell to run.
- array $argv
- The CLI arguments to invoke.
Returns
Exit code
setAliases() public ¶
setAliases( array $aliases )
Replace the entire alias map for a runner.
Aliases allow you to define alternate names for commands
in the collection. This can be useful to add top level switches
like --version
or -h
Usage
$runner->setAliases(['--version' => 'version']);
Parameters
- array $aliases
- The map of aliases to replace.
Returns
$this
setEventManager() public ¶
setEventManager( Cake\Event\EventManager
$events )
Get/set the application's event manager.
If the application does not support events and this method is used as a setter, an exception will be raised.
Parameters
-
Cake\Event\EventManager
$events - The event manager to set.
Returns
$this
Methods used from Cake\Event\EventDispatcherTrait
dispatchEvent() public ¶
dispatchEvent( string $name , array|null $data null , object|null $subject null )
Wrapper for creating and dispatching events.
Returns a dispatched event.
Parameters
- string $name
- Name of the event.
- array|null $data optional null
Any value you wish to be transported with this event to it can be read by listeners.
- object|null $subject optional null
The object that this event applies to ($this by default).
Returns
Magic methods inherited from Cake\Event\EventDispatcherInterface
getEventManager()
|
Properties detail
$app ¶
Cake\Core\ConsoleApplicationInterface
The application console commands are being run for.
$factory ¶
Cake\Console\CommandFactoryInterface
The application console commands are being run for.