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
Property 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 = self::CODE_ERROR): void
Halt the the current process with a StopException.
Parameters
-
int
$code optional The exit code to use.
Returns
void
Throws
Cake\Console\Exception\StopException
buildOptionParser() ¶ protected
buildOptionParser(Cake\Console\ConsoleOptionParser $parser): Cake\Console\ConsoleOptionParser
Hook method for defining this command's option parser.
Parameters
-
Cake\Console\ConsoleOptionParser
$parser The parser to be defined
Returns
Cake\Console\ConsoleOptionParser
defaultName() ¶ public static
defaultName(): string
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): void
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
Returns
void
execute() ¶ abstract public
execute(Cake\Console\Arguments $args, Cake\Console\ConsoleIo $io): int|null|void
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
executeCommand() ¶ public
executeCommand(Cake\Console\CommandInterface|string $command, array $args = [], Cake\Console\ConsoleIo|null $io = null): int|null
Execute another command with the provided set of arguments.
If you are using a string command name, that command's dependencies will not be resolved with the application container. Instead you will need to pass the command as an object with all of its dependencies.
Parameters
-
Cake\Console\CommandInterface|string
$command The command class name or command instance.
-
array
$args optional The arguments to invoke the command with.
-
Cake\Console\ConsoleIo|null
$io optional The ConsoleIo instance to use for the executed command.
Returns
int|null
getOptionParser() ¶ public
getOptionParser(): Cake\Console\ConsoleOptionParser
Get the option parser.
You can override buildOptionParser() to define your options & arguments.
Returns
Cake\Console\ConsoleOptionParser
Throws
RuntimeException
When the parser is invalid
initialize() ¶ public
initialize(): void
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.
Returns
void
run() ¶ public
run(array $argv, Cake\Console\ConsoleIo $io): int|null
Run the command.
Parameters
-
array
$argv -
Cake\Console\ConsoleIo
$io
Returns
int|null
setName() ¶ public
setName(string $name): $this
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
Returns
$this
setOutputLevel() ¶ protected
setOutputLevel(Cake\Console\Arguments $args, Cake\Console\ConsoleIo $io): void
Set the output level based on the Arguments.
Parameters
-
Cake\Console\Arguments
$args The command arguments.
-
Cake\Console\ConsoleIo
$io The console io
Returns
void