Class CommandCollection

Collection for Commands.

Used by Applications to whitelist their console commands. CakePHP will use the mapped commands to construct and dispatch shell commands.

Namespace: Cake\Console

Properties summary

Method Summary

  • __construct() public

    Constructor

  • add() public

    Add a command to the collection

  • addMany() public

    Add multiple commands at once.

  • autoDiscover() public

    Automatically discover shell commands in CakePHP, the application and all plugins.

  • count() public

    Implementation of Countable.

  • discoverPlugin() public

    Auto-discover shell & commands from the named plugin.

  • get() public

    Get the target for a command.

  • getIterator() public

    Implementation of IteratorAggregate.

  • has() public

    Check whether the named shell exists in the collection.

  • keys() public

    Get the list of available command names.

  • remove() public

    Remove a command from the collection if it exists.

  • resolveNames() protected

    Resolve names based on existing commands

Method Detail

__construct() public

__construct(array $commands)

Constructor

Parameters

array $commands optional

The map of commands to add to the collection.

add() public

add(string $name, mixed $command)

Add a command to the collection

Parameters

string $name

The name of the command you want to map.

string|\Cake\Console\Shell|\Cake\Console\CommandInterface $command

The command to map. Can be a FQCN, Shell instance or CommandInterface instance.

Returns

$this

Throws

InvalidArgumentException

addMany() public

addMany(array $commands)

Add multiple commands at once.

Parameters

array $commands

A map of command names => command classes/instances.

Returns

$this

See Also

\Cake\Console\CommandCollection::add()

autoDiscover() public

autoDiscover()

Automatically discover shell commands in CakePHP, the application and all plugins.

Commands will be located using filesystem conventions. Commands are discovered in the following order:

  • CakePHP provided commands
  • Application commands

Commands defined in the application will ovewrite commands with the same name provided by CakePHP.

Returns

string[]

An array of command names and their classes.

count() public

count()

Implementation of Countable.

Get the number of commands in the collection.

Returns

int

discoverPlugin() public

discoverPlugin(string $plugin)

Auto-discover shell & commands from the named plugin.

Discovered commands will have their names de-duplicated with existing commands in the collection. If a command is already defined in the collection and discovered in a plugin, only the long name (plugin.command) will be returned.

Parameters

string $plugin

The plugin to scan.

Returns

string[]

Discovered plugin commands.

get() public

get(string $name)

Get the target for a command.

Parameters

string $name

The named shell.

Returns

string|\Cake\Console\Shell|\Cake\Console\CommandInterface

Either the command class or an instance.

Throws

InvalidArgumentException
when unknown commands are fetched.

getIterator() public

getIterator()

Implementation of IteratorAggregate.

Returns

\Traversable

has() public

has(string $name)

Check whether the named shell exists in the collection.

Parameters

string $name

The named shell.

Returns

bool

keys() public

keys()

Get the list of available command names.

Returns

string[]

Command names

remove() public

remove(string $name)

Remove a command from the collection if it exists.

Parameters

string $name

The named shell.

Returns

$this

resolveNames() protected

resolveNames(array $input)

Resolve names based on existing commands

Parameters

array $input

The results of a CommandScanner operation.

Returns

string[]

A flat map of command names => class names.

Property Detail

$commands protected

Command list

Type

array

© 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/4.0/class-Cake.Console.CommandCollection.html