On this page
Class CommandRunner
Run CLI commands for the provided application.
- Cake\Console\CommandRunner implements Cake\Event\EventDispatcherInterface uses Cake\Event\EventDispatcherTrait
Properties summary
-
$aliasesprotectedAlias mappings.array -
The application console commands are being run for.
$appprotected -
The application console commands are being run for.
$factoryprotected -
$rootprotectedThe root command name. Defaults tostringcake.
Inherited Properties
Method Summary
-
__construct() publicConstructor
-
bootstrap() protectedApplication bootstrap wrapper.
- Check the created CommandCollection
-
createShell() protectedThe wrapper for creating shell instances.
- Get/set the application's event manager.
-
getEventManager() publicGet the application's event manager or the global one.
-
getShell() protectedGet the shell instance for a given command name
-
loadRoutes() protectedEnsure that the application's routes are loaded.
-
longestCommandName() protectedBuild the longest command name that exists in the collection
-
resolveName() protectedResolve the command name into a name that exists in the collection.
-
run() publicRun the command contained in $argv.
-
runCommand() protectedExecute a Command class.
-
runShell() protectedExecute a Shell class.
-
setAliases() publicReplace the entire alias map for a runner.
-
setEventManager() publicGet/set the application's event manager.
Method Detail
__construct()source 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
$rootoptional 'cake' - The root command name to be removed from argv.
Cake\Console\CommandFactoryInterface$factoryoptional null- Command factory instance.
bootstrap()source 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()source protected deprecated
checkCollection( mixed $commands , string $method )
Check the created CommandCollection
Deprecated
3.6.0 This method should be replaced with return types in 4.xParameters
-
mixed
$commands - The CommandCollection to check, could be anything though.
-
string
$method - The method that was used.
Throws
RuntimeExceptioncreateShell()source 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
Cake\Console\Shell|Cake\Console\CommandeventManager()source public deprecated
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
3.6.0 Will be removed in 4.0Parameters
Cake\Event\EventManager$eventsoptional null- The event manager to set.
Returns
Cake\Event\EventManager|Cake\Console\CommandRunner$this
Implementation of
Cake\Event\EventDispatcherInterface::eventManager()
getEventManager()source public
getEventManager( )
Get the application's event manager or the global one.
Returns
Cake\Event\EventManagerInterfacegetShell()source 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
Cake\Console\Shell|Cake\Console\CommandloadRoutes()source protected
loadRoutes( )
Ensure that the application's routes are loaded.
Console commands and shells often need to generate URLs.
longestCommandName()source 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
arrayAn array of the resolved name and modified argv.
resolveName()source 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
stringThe resolved class name
run()source 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.buildCommandsevent of auto-wiring plugins. - Run the requested command.
Parameters
-
array
$argv - The arguments from the CLI environment.
Cake\Console\ConsoleIo$iooptional null- The ConsoleIo instance. Used primarily for testing.
Returns
integerThe exit code of the command.
Throws
RuntimeExceptionrunCommand()source 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
integerExit code
runShell()source 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
integerExit code
setAliases()source 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()source 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()source 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
$dataoptional null -
Any value you wish to be transported with this event to it can be read by listeners.
-
object|null
$subjectoptional null -
The object that this event applies to ($this by default).
Returns
Cake\Event\EventMagic methods inherited from Cake\Event\EventDispatcherInterface
Properties detail
$appsource
protected Cake\Core\ConsoleApplicationInterface
The application console commands are being run for.
$factorysource
protected Cake\Console\CommandFactoryInterface
The application console commands are being run for.
© 2005–present 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.
https://api.cakephp.org/3.7/class-Cake.Console.CommandRunner.html