Class CommandRunner
Run CLI commands for the provided application.
Properties summary
- $_eventClass protected
string
Default class name for new event objects.
- $_eventManager protected
\Cake\Event\EventManagerInterface|\Cake\Event\EventManager
Instance of the Cake\Event\EventManager this object is using to dispatch inner events.
- $aliases protected
array
Alias mappings.
- $app protected
\Cake\Core\ConsoleApplicationInterface
The application console commands are being run for.
- $factory protected
\Cake\Console\CommandFactoryInterface
The application console commands are being run for.
- $root protected
string
The root command name. Defaults to
cake
.
Method Summary
Method Detail
__construct() public
__construct(\Cake\Core\ConsoleApplicationInterface $app, mixed $root, \Cake\Console\CommandFactoryInterface $factory)
Constructor
Parameters
-
\Cake\Core\ConsoleApplicationInterface
$app The application to run CLI commands for.
-
string
$root optional The root command name to be removed from argv.
-
\Cake\Console\CommandFactoryInterface|null
$factory optional 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, mixed $method)
Check the created CommandCollection
Parameters
-
mixed
$commands The CommandCollection to check, could be anything though.
-
string
$method The method that was used.
Throws
RuntimeException
createShell() protected
createShell(mixed $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\Command
dispatchEvent() public
dispatchEvent(mixed $name, mixed $data, mixed $subject)
Wrapper for creating and dispatching events.
Returns a dispatched event.
Parameters
-
string
$name Name of the event.
-
array|null
$data optional Any value you wish to be transported with this event to it can be read by listeners.
-
object|null
$subject optional The object that this event applies to ($this by default).
Returns
\Cake\Event\Event
eventManager() public
eventManager(\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|null
$events optional The event manager to set.
Returns
\Cake\Event\EventManager|$this
getEventManager() public
getEventManager()
Get the application's event manager or the global one.
Returns
\Cake\Event\EventManagerInterface
getShell() protected
getShell(\Cake\Console\ConsoleIo $io, \Cake\Console\CommandCollection $commands, mixed $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\Command
loadRoutes() protected
loadRoutes()
Ensure that the application's routes are loaded.
Console commands and shells often need to generate URLs.
longestCommandName() protected
longestCommandName(mixed $commands, mixed $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
array
An array of the resolved name and modified argv.
resolveName() protected
resolveName(mixed $commands, mixed $io, mixed $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|null
$name The name from the CLI args.
Returns
string
The resolved name.
run() public
run(array $argv, \Cake\Console\ConsoleIo $io)
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|null
$io optional The ConsoleIo instance. Used primarily for testing.
Returns
int
The exit code of the command.
Throws
RuntimeException
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
int|null
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
int|bool|null
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
-
string[]
$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
Property Detail
$_eventClass protected
Default class name for new event objects.
Type
string
$_eventManager protected
Instance of the Cake\Event\EventManager this object is using to dispatch inner events.
Type
\Cake\Event\EventManagerInterface|\Cake\Event\EventManager
$aliases protected
Alias mappings.
Type
array
$app protected
The application console commands are being run for.
Type
\Cake\Core\ConsoleApplicationInterface
$factory protected
The application console commands are being run for.
Type
\Cake\Console\CommandFactoryInterface
$root protected
The root command name. Defaults to cake
.
Type
string
© 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.9/class-Cake.Console.CommandRunner.html