Class CommandRunner
Run CLI commands for the provided application.
Property Summary
-
$_eventClass protected
string
Default class name for new event objects.
-
$_eventManager protected
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.
-
$root protected
string
The root command name. Defaults to
cake
.
Method Summary
-
__construct() public
Constructor
-
createShell() protected
The wrapper for creating shell instances.
-
dispatchEvent() public
Wrapper for creating and dispatching events.
-
eventManager() public deprecated
Returns the Cake\Event\EventManager manager instance for this object.
-
getEventManager() public
Returns the Cake\Event\EventManager manager instance for this object.
-
getShell() protected
Get the shell instance for a given command name
-
run() public
Run the command contained in $argv.
-
setAliases() public
Replace the entire alias map for a runner.
-
setEventManager() public
Returns the Cake\Event\EventManager manager instance for this object.
Method Detail
__construct() ¶ public
__construct(Cake\Core\ConsoleApplicationInterface $app, string $root = 'cake')
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.
createShell() ¶ protected
createShell(string $className, Cake\Console\ConsoleIo $io): Cake\Console\Shell
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
dispatchEvent() ¶ public
dispatchEvent(string $name, array|null $data = null, object|null $subject = null): Cake\Event\Event
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|null $eventManager = null): Cake\Event\EventManager
Returns the Cake\Event\EventManager manager instance for this object.
You can use this instance to register any new listeners or callbacks to the object events, or create your own events and trigger them at will.
Parameters
-
Cake\Event\EventManager|null
$eventManager optional the eventManager to set
Returns
Cake\Event\EventManager
getEventManager() ¶ public
getEventManager(): Cake\Event\EventManager
Returns the Cake\Event\EventManager manager instance for this object.
You can use this instance to register any new listeners or callbacks to the object events, or create your own events and trigger them at will.
Returns
Cake\Event\EventManager
getShell() ¶ protected
getShell(Cake\Console\ConsoleIo $io, Cake\Console\CommandCollection $commands, string $name): Cake\Console\Shell
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
run() ¶ public
run(array $argv, Cake\Console\ConsoleIo $io = null): int
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 The ConsoleIo instance. Used primarily for testing.
Returns
int
Throws
RuntimeException
setAliases() ¶ public
setAliases(array $aliases): $this
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 $eventManager): $this
Returns the Cake\Event\EventManager manager instance for this object.
You can use this instance to register any new listeners or callbacks to the object events, or create your own events and trigger them at will.
Parameters
-
Cake\Event\EventManager
$eventManager the eventManager to set
Returns
$this