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
-
$_eventClass protected
stringDefault class name for new event objects.
-
$_eventManager protected
Cake\Event\EventManagerInterface|nullInstance of the Cake\Event\EventManager this object is using to dispatch inner events.
-
$factory protected
?CommandFactoryInterface -
$name protected
stringThe name of this command.
Method Summary
-
__construct() public
Constructor
-
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.
-
dispatchEvent() public
Wrapper for creating and dispatching events.
-
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.
-
getEventManager() public
Returns the Cake\Event\EventManager manager instance for this object.
-
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.
-
setEventManager() public
Returns the Cake\Event\EventManagerInterface instance for this object.
-
setName() public
Set the name this command uses in the collection.
-
setOutputLevel() protected
Set the output level based on the Arguments.
Method Detail
__construct() ¶ public
__construct(Cake\Console\CommandFactoryInterface|null $factory = null)
Constructor
Parameters
-
Cake\Console\CommandFactoryInterface|null$factory optional Command factory instance.
abort() ¶ public
abort(int $code = self::CODE_ERROR): never
Halt the current process with a StopException.
Parameters
-
int$code optional The exit code to use.
Returns
neverThrows
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\ConsoleOptionParserThe built parser.
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
stringdispatchEvent() ¶ public
dispatchEvent(string $name, array $data = [], TSubject|null $subject = null): Cake\Event\EventInterface<TSubject>
Wrapper for creating and dispatching events.
Returns a dispatched event.
Parameters
-
string$name Name of the event.
-
array$data optional Any value you wish to be transported with this event to it can be read by listeners.
-
TSubject|null$subject optional The object that this event applies to ($this by default).
Returns
Cake\Event\EventInterface<TSubject>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
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|voidThe exit code or null for success
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|nullThe exit code or null for success of the command.
getDescription() ¶ public static
getDescription(): string
Get the command description.
Returns
stringgetEventManager() ¶ public
getEventManager(): Cake\Event\EventManagerInterface
Returns the Cake\Event\EventManager manager instance for this object.
You can use this instance to register any new listeners or callbacks to the object events, or create your own events and trigger them at will.
Returns
Cake\Event\EventManagerInterfacegetOptionParser() ¶ public
getOptionParser(): Cake\Console\ConsoleOptionParser
Get the option parser.
You can override buildOptionParser() to define your options & arguments.
Returns
Cake\Console\ConsoleOptionParserThrows
Cake\Core\Exception\CakeExceptionWhen 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|nullsetEventManager() ¶ public
setEventManager(Cake\Event\EventManagerInterface $eventManager): $this
Returns the Cake\Event\EventManagerInterface instance for this object.
You can use this instance to register any new listeners or callbacks to the object events, or create your own events and trigger them at will.
Parameters
-
Cake\Event\EventManagerInterface$eventManager the eventManager to set
Returns
$thissetName() ¶ 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
voidProperty Detail
$_eventManager ¶ protected
Instance of the Cake\Event\EventManager this object is using to dispatch inner events.
Type
Cake\Event\EventManagerInterface|null