Ejemplo n.º 1
0
 public function handleAdd(Args $args)
 {
     $descriptions = $args->getOption('description');
     $parameters = array();
     // The first description is for the installer
     $description = $descriptions ? array_shift($descriptions) : null;
     foreach ($args->getOption('param') as $parameter) {
         // Subsequent descriptions are for the parameters
         $paramDescription = $descriptions ? array_shift($descriptions) : null;
         // Optional parameter with default value
         if (false !== ($pos = strpos($parameter, '='))) {
             $parameters[] = new InstallerParameter(substr($parameter, 0, $pos), InstallerParameter::OPTIONAL, StringUtil::parseValue(substr($parameter, $pos + 1)), $paramDescription);
             continue;
         }
         // Required parameter
         $parameters[] = new InstallerParameter($parameter, InstallerParameter::REQUIRED, null, $paramDescription);
     }
     $this->installerManager->addRootInstallerDescriptor(new InstallerDescriptor($args->getArgument('name'), $args->getArgument('class'), $description, $parameters));
     return 0;
 }