On this page
Class CommandCollection
Collection for Commands.
Used by Applications to specify their console commands. CakePHP will use the mapped commands to construct and dispatch shell commands.
Property Summary
-
$commands protected
array<string,Cake\Console\ShellCake\Console\CommandInterface|string>
Command list
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<string,Cake\Console\ShellCake\Console\CommandInterface|string> $commands = [])
Constructor
Parameters
array<string,Cake\Console\ShellCake\Console\CommandInterface|string>
$commands optional-
The map of commands to add to the collection.
add() public
add(string $name, Cake\Console\CommandInterfaceCake\Console\Shell|string $command): $this
Add a command to the collection
Parameters
string
$name-
The name of the command you want to map.
Cake\Console\CommandInterfaceCake\Console\Shell|string
$command-
The command to map. Can be a FQCN, Shell instance or CommandInterface instance.
Returns
$this
Throws
InvalidArgumentException
addMany() public
addMany(array<string,Cake\Console\ShellCake\Console\CommandInterface|string> $commands): $this
Add multiple commands at once.
Parameters
array<string,Cake\Console\ShellCake\Console\CommandInterface|string>
$commands-
A map of command names => command classes/instances.
Returns
$this
See Also
autoDiscover() public
autoDiscover(): array<string, string>
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 overwrite commands with the same name provided by CakePHP.
Returns
array<string, string>
count() public
count(): int
Implementation of Countable.
Get the number of commands in the collection.
Returns
int
discoverPlugin() public
discoverPlugin(string $plugin): array<string, string>
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
array<string, string>
get() public
get(string $name): Cake\Console\CommandInterfaceCake\Console\Shell|string
Get the target for a command.
Parameters
string
$name-
The named shell.
Returns
Cake\Console\CommandInterfaceCake\Console\Shell|string
Throws
InvalidArgumentException
when unknown commands are fetched.
getIterator() public
getIterator(): Traversable
Implementation of IteratorAggregate.
Returns
Traversable
has() public
has(string $name): bool
Check whether the named shell exists in the collection.
Parameters
string
$name-
The named shell.
Returns
bool
keys() public
keys(): array<string>
Get the list of available command names.
Returns
array<string>
remove() public
remove(string $name): $this
Remove a command from the collection if it exists.
Parameters
string
$name-
The named shell.
Returns
$this
resolveNames() protected
resolveNames(array $input): array<string, string>
Resolve names based on existing commands
Parameters
array
$input-
The results of a CommandScanner operation.
Returns
array<string, string>
Property Detail
$commands protected
Command list
Type
array<string,Cake\Console\ShellCake\Console\CommandInterface|string>
© 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.4/class-Cake.Console.CommandCollection.html