Class CommandRunner

Run CLI commands for the provided application.

Cake\Console\CommandRunner implements Cake\Event\EventDispatcherInterface uses Cake\Event\EventDispatcherTrait
Namespace: Cake\Console
Location: Console/CommandRunner.php

Properties summary

Inherited Properties

Method Summary

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 $root optional 'cake'
The root command name to be removed from argv.
Cake\Console\CommandFactoryInterface $factory optional 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.x

Parameters

mixed $commands
The CommandCollection to check, could be anything though.
string $method
The method that was used.

Throws

RuntimeException

createShell()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\Command

eventManager()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.0

Parameters

Cake\Event\EventManager $events optional 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\EventManagerInterface

getShell()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\Command

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

array
An 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

string
The 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.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

integer
The exit code of the command.

Throws

RuntimeException

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

integer
Exit 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

integer
Exit 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 $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

Cake\Event\Event

Magic methods inherited from Cake\Event\EventDispatcherInterface

getEventManager()

Properties detail

$aliasessource

protected array

Alias mappings.

[]

$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.

$rootsource

protected string

The root command name. Defaults to cake.

© 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