CakePHP
  • Documentation
    • Book
    • API
    • Videos
    • Reporting Security Issues
    • Privacy Policy
    • Logos & Trademarks
  • Business Solutions
  • Swag
  • Road Trip
  • Team
  • Community
    • Community
    • Get Involved
    • Issues (Github)
    • Bakery
    • Featured Resources
    • Training
    • Meetups
    • My CakePHP
    • CakeFest
    • Newsletter
    • Linkedin
    • YouTube
    • Facebook
    • Twitter
    • Mastodon
    • Help & Support
    • Forum
    • Stack Overflow
    • IRC
    • Slack
    • Paid Support
CakePHP

C CakePHP 3.10 Red Velvet API

  • Project:
    • CakePHP
      • CakePHP
      • Authentication
      • Authorization
      • Chronos
      • Elastic Search
      • Queue
  • Version:
    • 3.10
      • 5.2
      • 5.1
      • 5.0
      • 4.6
      • 4.5
      • 4.4
      • 4.3
      • 4.2
      • 4.1
      • 4.0
      • 3.10
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

Namespaces

  • Global
  • Cake
    • Auth
    • Cache
    • Collection
    • Command
    • Console
      • Exception
    • Controller
    • Core
    • Database
    • Datasource
    • Error
    • Event
    • Filesystem
    • Form
    • Http
    • I18n
    • Log
    • Mailer
    • Network
    • ORM
    • Routing
    • Shell
    • TestSuite
    • Utility
    • Validation
    • View

Class CommandRunner

Run CLI commands for the provided application.

Namespace: Cake\Console

Property 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

  • __construct() public

    Constructor

  • bootstrap() protected

    Application bootstrap wrapper.

  • checkCollection() protected deprecated

    Check the created CommandCollection

  • createShell() protected

    The wrapper for creating shell instances.

  • dispatchEvent() public

    Wrapper for creating and dispatching events.

  • eventManager() public deprecated

    Get/set the application's event manager.

  • getEventManager() public

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

  • getShell() protected

    Get the shell instance for a given command name

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

  • runShell() protected

    Execute a Shell 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 bootstrap() and events() if application implements EventApplicationInterface. After the application is bootstrapped and events are attached, plugins are bootstrapped and have their events attached.

Returns
void

checkCollection() ¶ protected

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.

Returns
void
Throws
RuntimeException

createShell() ¶ protected

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

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

The event manager to set.

Returns
Cake\Event\EventManager|$this

getEventManager() ¶ 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\EventManagerInterface

getShell() ¶ protected

getShell(Cake\Console\ConsoleIo $io, Cake\Console\CommandCollection $commands, string $name): Cake\Console\Shell|Cake\Console\Command

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

Ensure that the application's routes are loaded.

Console commands and shells often need to generate URLs.

Returns
void

longestCommandName() ¶ 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
array

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
string

run() ¶ 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.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
Throws
RuntimeException

runCommand() ¶ protected

runCommand(Cake\Console\Command $command, array $argv, Cake\Console\ConsoleIo $io): int|null

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

runShell() ¶ protected

runShell(Cake\Console\Shell $shell, array $argv): int|bool|null

Execute a Shell class.

Parameters
Cake\Console\Shell $shell

The shell to run.

array $argv

The CLI arguments to invoke.

Returns
int|bool|null

setAliases() ¶ public

setAliases(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
string[] $aliases

The map of aliases to replace.

Returns
$this

setEventManager() ¶ public

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

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
OpenHub
Pingping
Linode
  • Business Solutions
  • Showcase
  • Documentation
  • Book
  • API
  • Videos
  • Reporting Security Issues
  • Privacy Policy
  • Logos & Trademarks
  • Community
  • Get Involved
  • Issues (Github)
  • Bakery
  • Featured Resources
  • Training
  • Meetups
  • My CakePHP
  • CakeFest
  • Newsletter
  • Linkedin
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • Help & Support
  • Forum
  • Stack Overflow
  • IRC
  • Slack
  • Paid Support

Generated using CakePHP API Docs