/** * Dynamically adds options to this task based on the current route. * * @param sfCommandManager $commandManager * @param array $options Options as read from commandline * * @return void * @see sfTask */ protected function process(sfCommandManager $commandManager, $options) { $commandManager->process($options); if (array_key_exists('application', $commandManager->getArgumentValues()) && array_key_exists('sf_route', $commandManager->getArgumentValues())) { $application = $commandManager->getArgumentValue('application'); $routeName = $commandManager->getArgumentValue('sf_route'); $configuration = $this->createConfiguration($application, 'prod'); $this->route = sfImageTransformExtraPluginConfiguration::getRoute($routeName, $configuration); $routeVariables = array_keys($this->route->getVariables()); $this->options = array(); $optionSet = new sfCommandOptionSet(); foreach ($commandManager->getErrors() as $error) { if (preg_match('/"--([\\w-_]+)"/', $error, $matches) && in_array($matches[1], $routeVariables)) { $option = new sfCommandOption($matches[1], null, sfCommandOption::PARAMETER_OPTIONAL, '', null); $this->options[] = $option; $optionSet->addOption($option); } } $commandManager->setOptionSet($optionSet); } parent::process($commandManager, $options); }
$manager = new sfCommandManager($argumentSet, $optionSet); $t->is($manager->getOptionSet(), $optionSet, '__construct() can take a sfCommandOptionSet as its second argument'); // ->setArgumentSet() ->getArgumentSet() $t->diag('->setArgumentSet() ->getArgumentSet()'); $manager = new sfCommandManager(new sfCommandArgumentSet()); $argumentSet = new sfCommandArgumentSet(); $manager->setArgumentSet($argumentSet); $t->is($manager->getArgumentSet(), $argumentSet, '->setArgumentSet() sets the manager argument set'); // ->setOptionSet() ->getOptionSet() $t->diag('->setOptionSet() ->getOptionSet()'); $manager = new sfCommandManager(new sfCommandArgumentSet()); $optionSet = new sfCommandOptionSet(); $manager->setOptionSet($optionSet); $t->is($manager->getOptionSet(), $optionSet, '->setOptionSet() sets the manager option set'); // ->process() $t->diag('->process()'); $argumentSet = new sfCommandArgumentSet(array( new sfCommandArgument('foo1', sfCommandArgument::REQUIRED), new sfCommandArgument('foo2', sfCommandArgument::OPTIONAL | sfCommandArgument::IS_ARRAY), )); $optionSet = new sfCommandOptionSet(array( new sfCommandOption('foo1', null, sfCommandOption::PARAMETER_NONE), new sfCommandOption('foo2', 'f', sfCommandOption::PARAMETER_NONE), new sfCommandOption('foo3', null, sfCommandOption::PARAMETER_OPTIONAL, '', 'default3'), new sfCommandOption('foo4', null, sfCommandOption::PARAMETER_OPTIONAL, '', 'default4'), new sfCommandOption('foo5', null, sfCommandOption::PARAMETER_OPTIONAL, '', 'default5'), new sfCommandOption('foo6', 'r', sfCommandOption::PARAMETER_REQUIRED, '', 'default5'),