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.

Cake\Console\CommandCollection implements IteratorAggregate, Countable

Properties summary

Method Summary

  • __construct() public
    Constructor
  • add() public
    Add a command to the collection
  • addMany() public
    Add multiple commands at once.
  • Automatically discover shell commands in CakePHP, the application and all plugins.
  • count() public
    Implementation of Countable.
  • 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.
  • remove() public
    Remove a command from the collection if it exists.
  • resolveNames() protected
    Resolve names based on existing commands

Method Detail

__construct()source public

__construct( array $commands = [] )

Constructor

Parameters

array $commands optional []
The map of commands to add to the collection.

add()source public

add( string $name , string|Cake\Console\Shell|Cake\Console\Command $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\Command $command
The command to map.

Returns


$this

addMany()source public

addMany( array $commands )

Add multiple commands at once.

Parameters

array $commands
A map of command names => command classes/instances.

Returns


$this

See

\Cake\Console\CommandCollection::add()

autoDiscover()source 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()source public

count( )

Implementation of Countable.

Get the number of commands in the collection.

Returns

integer

Implementation of

Countable::count()

discoverPlugin()source 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()source public

get( string $name )

Get the target for a command.

Parameters

string $name
The named shell.

Returns

string|Cake\Console\Shell
Either the shell class or an instance.

Throws

InvalidArgumentException
when unknown commands are fetched.

getIterator()source public

getIterator( )

Implementation of IteratorAggregate.

Returns

ArrayIterator

Implementation of

IteratorAggregate::getIterator()

has()source public

has( string $name )

Check whether the named shell exists in the collection.

Parameters

string $name
The named shell.

Returns

boolean

remove()source public

remove( string $name )

Remove a command from the collection if it exists.

Parameters

string $name
The named shell.

Returns


$this

resolveNames()source 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.

Properties detail

$commandssource

protected array

Command list

[]

© 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.CommandCollection.html