Class BaseCommand
Base class for console commands.
Provides hooks for common command features:
initializeActs as a post-construct hook.buildOptionParserBuild/Configure the option parser for your command.executeExecute your command with parsed Arguments and ConsoleIo
Property Summary
-
$name protected
stringThe name of this command.
Method Summary
-
abort() public
Halt 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.
-
getDescription() public static
Get the command description.
-
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 current process with a StopException.
Parameters
-
int$code optional The exit code to use.
Returns
voidThrows
Cake\Console\Exception\StopExceptionbuildOptionParser() ¶ 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\ConsoleOptionParserdefaultName() ¶ 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
stringdisplayHelp() ¶ 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
voidexecute() ¶ 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|voidexecuteCommand() ¶ 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|nullgetDescription() ¶ public static
getDescription(): string
Get the command description.
Returns
stringgetOptionParser() ¶ public
getOptionParser(): Cake\Console\ConsoleOptionParser
Get the option parser.
You can override buildOptionParser() to define your options & arguments.
Returns
Cake\Console\ConsoleOptionParserThrows
RuntimeExceptionWhen 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
voidrun() ¶ public
run(array $argv, Cake\Console\ConsoleIo $io): int|null
Run the command.
Parameters
-
array$argv -
Cake\Console\ConsoleIo$io
Returns
int|nullsetName() ¶ 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
$thissetOutputLevel() ¶ 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