Class CompletionCommand

Provide command completion shells such as bash.

Namespace: Cake\Command

Constants summary

  • int
    CODE_ERROR
    1
  • int
    CODE_SUCCESS
    0

Properties summary

  • $_modelFactories protected
    (callable|\Cake\Datasource\Locator\LocatorInterface)[]

    A list of overridden model factory functions.

  • $_modelType protected
    string

    The model type to use.

  • $_tableLocator protected
    \Cake\ORM\Locator\LocatorInterface|null

    Table locator instance

  • $commands protected
    \Cake\Console\CommandCollection
  • $modelClass protected
    string|null

    This object's primary model class name. Should be a plural form.

  • $name protected
    string

    The name of this command.

Method Summary

Method Detail

__construct() public

__construct()

Constructor

By default CakePHP will construct command objects when building the CommandCollection for your application.

_setModelClass() protected

_setModelClass(string $name)

Set the modelClass property based on conventions.

If the property is already set it will not be overwritten

Parameters

string $name

Class name.

abort() public

abort(int $code)

Halt the the current process with a StopException.

Parameters

int $code optional

The exit code to use.

Throws

Cake\Console\Exception\StopException

buildOptionParser() public

buildOptionParser(\Cake\Console\ConsoleOptionParser $parser)

Gets the option parser instance and configures it.

Parameters

\Cake\Console\ConsoleOptionParser $parser

The parser to build

Returns

\Cake\Console\ConsoleOptionParser

defaultName() public static

defaultName()

Get the command name.

Returns the command name based on class name. For e.g. for a command with class name UpdateTableCommand the default name returned would be 'update_table'.

Returns

string

displayHelp() protected

displayHelp(\Cake\Console\ConsoleOptionParser $parser, \Cake\Console\Arguments $args, \Cake\Console\ConsoleIo $io)

Output help content

Parameters

\Cake\Console\ConsoleOptionParser $parser

The option parser.

\Cake\Console\Arguments $args

The command arguments.

\Cake\Console\ConsoleIo $io

The console io

execute() public

execute(\Cake\Console\Arguments $args, \Cake\Console\ConsoleIo $io)

Main function Prints out the list of commands.

Parameters

\Cake\Console\Arguments $args

The command arguments.

\Cake\Console\ConsoleIo $io

The console io

Returns

int

executeCommand() public

executeCommand(mixed $command, array $args, ?\Cake\Console\ConsoleIo $io)

Execute another command with the provided set of arguments.

Parameters

string|\Cake\Console\CommandInterface $command

The command class name or command instance.

array $args optional

The arguments to invoke the command with.

\Cake\Console\ConsoleIo $io optional

The ConsoleIo instance to use for the executed command.

Returns

int|null

The exit code or null for success of the command.

getCommands() protected

getCommands(\Cake\Console\Arguments $args, \Cake\Console\ConsoleIo $io)

Get the list of defined commands.

Parameters

\Cake\Console\Arguments $args

The command arguments.

\Cake\Console\ConsoleIo $io

The console io

Returns

int

getModelType() public

getModelType()

Get the model type to be used by this class

Returns

string

getName() public

getName()

Get the command name.

Returns

string

getOptionParser() public

getOptionParser()

Get the option parser.

You can override buildOptionParser() to define your options & arguments.

Returns

\Cake\Console\ConsoleOptionParser

Throws

RuntimeException
When the parser is invalid

getOptions() protected

getOptions(\Cake\Console\Arguments $args, \Cake\Console\ConsoleIo $io)

Get the options for a command or subcommand

Parameters

\Cake\Console\Arguments $args

The command arguments.

\Cake\Console\ConsoleIo $io

The console io

Returns

int

getRootName() public

getRootName()

Get the root command name.

Returns

string

getSubcommands() protected

getSubcommands(\Cake\Console\Arguments $args, \Cake\Console\ConsoleIo $io)

Get the list of defined sub-commands.

Parameters

\Cake\Console\Arguments $args

The command arguments.

\Cake\Console\ConsoleIo $io

The console io

Returns

int

getTableLocator() public

getTableLocator()

Gets the table locator.

Returns

\Cake\ORM\Locator\LocatorInterface

initialize() public

initialize()

Hook method invoked by CakePHP when a command is about to be executed.

Override this method and implement expensive/important setup steps that should not run on every command run. This method will be called before the options and arguments are validated and processed.

loadModel() public

loadModel(?string $modelClass, ?string $modelType)

Loads and constructs repository objects required by this object

Typically used to load ORM Table objects as required. Can also be used to load other types of repository objects your application uses.

If a repository provider does not return an object a MissingModelException will be thrown.

Parameters

string|null $modelClass optional

Name of model class to load. Defaults to $this->modelClass. The name can be an alias like 'Post' or FQCN like App\Model\Table\PostsTable::class.

string|null $modelType optional

The type of repository to load. Defaults to the getModelType() value.

Returns

\Cake\Datasource\RepositoryInterface

The model instance created.

Throws

Cake\Datasource\Exception\MissingModelException
If the model class cannot be found.
UnexpectedValueException
If $modelClass argument is not provided and ModelAwareTrait::$modelClass property value is empty.

log() public

log(string $message, mixed $level, mixed $context)

Convenience method to write a message to Log. See Log::write() for more information on writing to logs.

Parameters

string $message

Log message.

int|string $level optional

Error level.

string|array $context optional

Additional log data relevant to this message.

Returns

bool

Success of log write.

modelFactory() public

modelFactory(string $type, mixed $factory)

Override a existing callable to generate repositories of a given type.

Parameters

string $type

The name of the repository type the factory function is for.

callable|\Cake\Datasource\Locator\LocatorInterface $factory

The factory function used to create instances.

run() public

run(array $argv, \Cake\Console\ConsoleIo $io)

Run the command.

Parameters

array $argv

Arguments from the CLI environment.

\Cake\Console\ConsoleIo $io

The console io

Returns

int|null

Exit code or null for success.

setCommandCollection() public

setCommandCollection(\Cake\Console\CommandCollection $commands)

Set the command collection used to get completion data on.

Parameters

\Cake\Console\CommandCollection $commands

The command collection

setModelType() public

setModelType(string $modelType)

Set the model type to be used by this class

Parameters

string $modelType

The model type

Returns

$this

setName() public

setName(string $name)

Set the name this command uses in the collection.

Generally invoked by the CommandCollection when the command is added. Required to have at least one space in the name so that the root command can be calculated.

Parameters

string $name

The name the command uses in the collection.

Returns

$this

Throws

InvalidArgumentException

setOutputLevel() protected

setOutputLevel(\Cake\Console\Arguments $args, \Cake\Console\ConsoleIo $io)

Set the output level based on the Arguments.

Parameters

\Cake\Console\Arguments $args

The command arguments.

\Cake\Console\ConsoleIo $io

The console io

setTableLocator() public

setTableLocator(\Cake\ORM\Locator\LocatorInterface $tableLocator)

Sets the table locator.

Parameters

\Cake\ORM\Locator\LocatorInterface $tableLocator

LocatorInterface instance.

Returns

$this

shellSubcommands() protected

shellSubcommands(\Cake\Console\Shell $shell)

Reflect the subcommands names out of a shell.

Parameters

\Cake\Console\Shell $shell

The shell to get commands for

Returns

string[]

A list of commands

Property Detail

$_modelFactories protected

A list of overridden model factory functions.

Type

(callable|\Cake\Datasource\Locator\LocatorInterface)[]

$_modelType protected

The model type to use.

Type

string

$_tableLocator protected

Table locator instance

Type

\Cake\ORM\Locator\LocatorInterface|null

$commands protected

Type

\Cake\Console\CommandCollection

$modelClass protected

This object's primary model class name. Should be a plural form.

CakePHP will not inflect the name.

Example: For an object named 'Comments', the modelClass would be 'Comments'. Plugin classes should use Plugin.Comments style names to correctly load models from the correct plugin.

Use empty string to not use auto-loading on this object. Null auto-detects based on controller name.

Type

string|null

$name protected

The name of this command.

Type

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.1/class-Cake.Command.CompletionCommand.html