[Console] added a ways to add common behaviors to commands extending a common command

This commit is contained in:
Fabien Potencier 2010-01-20 15:58:25 +01:00
parent c0ee9fee18
commit ee3e298c5d
1 changed files with 21 additions and 0 deletions

View File

@ -104,6 +104,25 @@ class Command
{
}
/**
* Initializes the command just after the input has been validated.
*
* This is mainly useful when a lot of commands extends one main command
* where some things need to be initialized based on the input arguments and options.
*
* @param InputInterface $input An InputInterface instance
* @param OutputInterface $output An OutputInterface instance
*/
protected function initialize(InputInterface $input, OutputInterface $output)
{
}
/**
* Runs the command.
*
* @param InputInterface $input An InputInterface instance
* @param OutputInterface $output An OutputInterface instance
*/
public function run(InputInterface $input, OutputInterface $output)
{
// add the application arguments and options
@ -122,6 +141,8 @@ class Command
}
}
$this->initialize($input, $output);
if ($input->isInteractive())
{
$this->interact($input, $output);