public function createCommand(TaskInfo $taskInfo) { $task = new Command($taskInfo->getName()); $task->setDescription($taskInfo->getDescription()); $task->setHelp($taskInfo->getHelp()); $args = $taskInfo->getArguments(); foreach ($args as $name => $val) { $description = $taskInfo->getArgumentDescription($name); if ($val === TaskInfo::PARAM_IS_REQUIRED) { $task->addArgument($name, InputArgument::REQUIRED, $description); } elseif (is_array($val)) { $task->addArgument($name, InputArgument::IS_ARRAY, $description, $val); } else { $task->addArgument($name, InputArgument::OPTIONAL, $description, $val); } } $opts = $taskInfo->getOptions(); foreach ($opts as $name => $val) { $description = $taskInfo->getOptionDescription($name); $fullName = $name; $shortcut = ''; if (strpos($name, '|')) { list($fullName, $shortcut) = explode('|', $name, 2); } if (is_bool($val)) { $task->addOption($fullName, $shortcut, InputOption::VALUE_NONE, $description); } else { $task->addOption($fullName, $shortcut, InputOption::VALUE_OPTIONAL, $description, $val); } } return $task; }
public function getName() { return 'task:' . parent::getName(); }
/** * @param $className * @param TaskInfo $taskInfo * @return Command */ protected function createCommand($className, TaskInfo $taskInfo) { if ($className === strtolower(Tg::TGCLASS)) { $name = $taskInfo->getName(); } else { $camel = preg_replace("/:/", '-', $taskInfo->getName()); $name = $className . ':' . $camel; } $task = new Command($name); $task->setDescription($taskInfo->getDescription()); $task->setHelp($taskInfo->getHelp()); $args = $taskInfo->getArguments(); foreach ($args as $name => $val) { $description = $taskInfo->getArgumentDescription($name); if ($val === TaskInfo::PARAM_IS_REQUIRED) { $task->addArgument($name, InputArgument::REQUIRED, $description); } elseif (is_array($val)) { $task->addArgument($name, InputArgument::IS_ARRAY, $description, $val); } else { $task->addArgument($name, InputArgument::OPTIONAL, $description, $val); } } $opts = $taskInfo->getOptions(); foreach ($opts as $name => $val) { $description = $taskInfo->getOptionDescription($name); $fullName = $name; $shortcut = ''; if (strpos($name, '|')) { list($fullName, $shortcut) = explode('|', $name, 2); } if (is_bool($val)) { $task->addOption($fullName, $shortcut, InputOption::VALUE_NONE, $description); } else { $task->addOption($fullName, $shortcut, InputOption::VALUE_OPTIONAL, $description, $val); } } return $task; }
protected function createCommand($taskName) { $taskInfo = new TaskInfo(self::ROBOCLASS, $taskName); $task = new Command($taskInfo->getName()); $task->setDescription($taskInfo->getDescription()); $args = $taskInfo->getArguments(); foreach ($args as $name => $val) { if ($val === TaskInfo::PARAM_IS_REQUIRED) { $task->addArgument($name, InputArgument::REQUIRED); } elseif (is_array($val)) { $task->addArgument($name, InputArgument::IS_ARRAY, '', $val); } else { $task->addArgument($name, InputArgument::OPTIONAL, '', $val); } } $opts = $taskInfo->getOptions(); foreach ($opts as $name => $val) { if (empty($val)) { $task->addOption($name, '', InputOption::VALUE_NONE, ''); } else { $task->addOption($name, '', InputOption::VALUE_OPTIONAL, '', $val); } } return $task; }