Class CommandRunner
Run CLI commands for the provided application.
Property Summary
- 
        $_eventClass protected
stringDefault class name for new event objects.
 - 
        $_eventManager protected
Cake\Event\EventManagerInterface|nullInstance of the Cake\Event\EventManager this object is using to dispatch inner events.
 - 
        $aliases protected
array<string, string>Alias mappings.
 - 
        $app protected
Cake\Core\ConsoleApplicationInterfaceThe application console commands are being run for.
 - 
        $factory protected
Cake\Console\CommandFactoryInterface|nullThe application console commands are being run for.
 - 
        $root protected
stringThe root command name. Defaults to
cake. 
Method Summary
- 
          
__construct() public
Constructor
 - 
          
bootstrap() protected
Application bootstrap wrapper.
 - 
          
createCommand() protected
The wrapper for creating command instances.
 - 
          
dispatchEvent() public
Wrapper for creating and dispatching events.
 - 
          
getCommand() protected
Get the shell instance for a given command name
 - 
          
getEventManager() public
Get the application's event manager or the global one.
 - 
          
loadRoutes() protected
Ensure that the application's routes are loaded.
 - 
          
longestCommandName() protected
Build the longest command name that exists in the collection
 - 
          
resolveName() protected
Resolve the command name into a name that exists in the collection.
 - 
          
run() public
Run the command contained in $argv.
 - 
          
runCommand() protected
Execute a Command class.
 - 
          
setAliases() public
Replace the entire alias map for a runner.
 - 
          
setEventManager() public
Get/set the application's event manager.
 
Method Detail
__construct() ¶ public
__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 optional The root command name to be removed from argv.
- 
                
Cake\Console\CommandFactoryInterface|null$factory optional Command factory instance.
bootstrap() ¶ protected
bootstrap(): void
      Application bootstrap wrapper.
Calls the application's bootstrap() hook. After the application the
plugins are bootstrapped.
Returns
voidcreateCommand() ¶ protected
createCommand(string $className): Cake\Console\CommandInterface
      The wrapper for creating command instances.
Parameters
- 
                
string$className Command class name.
Returns
Cake\Console\CommandInterfacedispatchEvent() ¶ public
dispatchEvent(string $name, array $data = [], TSubject|null $subject = null): Cake\Event\EventInterface<TSubject>
      Wrapper for creating and dispatching events.
Returns a dispatched event.
Parameters
- 
                
string$name Name of the event.
- 
                
array$data optional Any value you wish to be transported with this event to it can be read by listeners.
- 
                
TSubject|null$subject optional The object that this event applies to ($this by default).
Returns
Cake\Event\EventInterface<TSubject>getCommand() ¶ protected
getCommand(Cake\Console\ConsoleIo $io, Cake\Console\CommandCollection $commands, string $name): Cake\Console\CommandInterface
      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\CommandInterfacegetEventManager() ¶ public
getEventManager(): Cake\Event\EventManagerInterface
      Get the application's event manager or the global one.
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\EventManagerInterfaceloadRoutes() ¶ protected
loadRoutes(): void
      Ensure that the application's routes are loaded.
Console commands and shells often need to generate URLs.
Returns
voidlongestCommandName() ¶ protected
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
arrayAn array of the resolved name and modified argv.
resolveName() ¶ protected
resolveName(Cake\Console\CommandCollection $commands, Cake\Console\ConsoleIo $io, string|null $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|null$name The name from the CLI args.
Returns
stringThe resolved name.
Throws
Cake\Console\Exception\MissingOptionExceptionrun() ¶ public
run(array $argv, Cake\Console\ConsoleIo|null $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.buildCommandsevent 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
intThe exit code of the command.
runCommand() ¶ protected
runCommand(Cake\Console\CommandInterface $command, array $argv, Cake\Console\ConsoleIo $io): int|null
      Execute a Command class.
Parameters
- 
                
Cake\Console\CommandInterface$command The command to run.
- 
                
array$argv The CLI arguments to invoke.
- 
                
Cake\Console\ConsoleIo$io The console io
Returns
int|nullExit code
setAliases() ¶ public
setAliases(array<string, string> $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<string, string>$aliases The map of aliases to replace.
Returns
$thissetEventManager() ¶ public
setEventManager(Cake\Event\EventManagerInterface $eventManager): $this
      Get/set the application's event manager.
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\EventManagerInterface$eventManager The event manager to set.
Returns
$thisProperty Detail
$_eventManager ¶ protected
Instance of the Cake\Event\EventManager this object is using to dispatch inner events.
Type
Cake\Event\EventManagerInterface|null$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|null