Class BaseCommand

Base class for console commands.

Provides hooks for common command features:

  • initialize Acts as a post-construct hook.
  • buildOptionParser Build/Configure the option parser for your command.
  • execute Execute your command with parsed Arguments and ConsoleIo
Abstract
Namespace: Cake\Console

Constants summary

  • int
    CODE_ERROR
    1
  • int
    CODE_SUCCESS
    0

Properties summary

  • $name protected
    string

    The name of this command.

Method Summary

  • abort() public

    Halt the the current process with a StopException.

  • buildOptionParser() protected

    Hook method for defining this command's option parser.

  • defaultName() public static

    Get the command name.

  • displayHelp() protected

    Output help content

  • execute() abstract public

    Implement this method with your command's logic.

  • executeCommand() public

    Execute another command with the provided set of arguments.

  • getName() public

    Get the command name.

  • getOptionParser() public

    Get the option parser.

  • getRootName() public

    Get the root command name.

  • initialize() public

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

  • run() public

    Run the command.

  • setName() public

    Set the name this command uses in the collection.

  • setOutputLevel() protected

    Set the output level based on the Arguments.

Method Detail

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() protected

buildOptionParser(\Cake\Console\ConsoleOptionParser $parser)

Hook method for defining this command's option parser.

Parameters

\Cake\Console\ConsoleOptionParser $parser

The parser to be defined

Returns

\Cake\Console\ConsoleOptionParser

The built parser.

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() abstract public

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

Implement this method with your command's logic.

Parameters

\Cake\Console\Arguments $args

The command arguments.

\Cake\Console\ConsoleIo $io

The console io

Returns

int|null|void

The exit code or null for success

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.

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

getRootName() public

getRootName()

Get the root command name.

Returns

string

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.

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.

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

Property Detail

$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.0/class-Cake.Console.BaseCommand.html