\Cake\ConsoleCommandRunner

Run CLI commands for the provided application.

Summary

Methods
Properties
Constants
eventManager()
getEventManager()
setEventManager()
dispatchEvent()
__construct()
setAliases()
run()
No public properties found
No constants found
bootstrap()
checkCollection()
getShell()
longestCommandName()
resolveName()
runShell()
createShell()
loadRoutes()
$_eventManager
$_eventClass
$app
$factory
$root
$aliases
N/A
No private methods found
No private properties found
N/A

Properties

$_eventClass

$_eventClass : string

Default class name for new event objects.

Type

string

$root

$root : string

The root command name. Defaults to `cake`.

Type

string

$aliases

$aliases : array

Alias mappings.

Type

array

Methods

eventManager()

eventManager(\Cake\Event\EventManager|null  $events = null) : \Cake\Event\EventManager|$this

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

The event manager to set.

Returns

\Cake\Event\EventManager|$this

getEventManager()

getEventManager() : \Cake\Event\EventManagerInterface

Get the application's event manager or the global one.

Returns

\Cake\Event\EventManagerInterface

setEventManager()

setEventManager(\Cake\Event\EventManager  $events) : $this

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

dispatchEvent()

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

Any value you wish to be transported with this event to it can be read by listeners.

object|null $subject

The object that this event applies to ($this by default).

Returns

\Cake\Event\Event

__construct()

__construct(\Cake\Core\ConsoleApplicationInterface  $app, string  $root = 'cake', \Cake\Console\CommandFactoryInterface|null  $factory = null) 

Constructor

Parameters

\Cake\Core\ConsoleApplicationInterface $app

The application to run CLI commands for.

string $root

The root command name to be removed from argv.

\Cake\Console\CommandFactoryInterface|null $factory

Command factory instance.

setAliases()

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

run()

run(array  $argv, \Cake\Console\ConsoleIo  $io = null) : integer

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

The ConsoleIo instance. Used primarily for testing.

Throws

\RuntimeException

Returns

integer —

The exit code of the command.

bootstrap()

bootstrap() : void

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()

checkCollection(mixed  $commands, string  $method) : void

Check the created CommandCollection

Parameters

mixed $commands

The CommandCollection to check, could be anything though.

string $method

The method that was used.

Throws

\RuntimeException

longestCommandName()

longestCommandName(\Cake\Console\CommandCollection  $commands, array  $argv) : array

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()

resolveName(\Cake\Console\CommandCollection  $commands, \Cake\Console\ConsoleIo  $io, string  $name) : string

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

string —

The resolved class name

runShell()

runShell(\Cake\Console\Shell  $shell, array  $argv) : integer

Execute a Shell class.

Parameters

\Cake\Console\Shell $shell

The shell to run.

array $argv

The CLI arguments to invoke.

Returns

integer —

Exit code

createShell()

createShell(string  $className, \Cake\Console\ConsoleIo  $io) : \Cake\Console\Shell|\Cake\Console\Command

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

loadRoutes()

loadRoutes() : void

Ensure that the application's routes are loaded.

Console commands and shells often need to generate URLs.