Esempio n. 1
0
File: Cli.php Progetto: crodas/cli
 public function prepare()
 {
     $loader = Remember::wrap('cli', function ($args, $files) {
         $dirAnn = new Dir($args);
         return array($dirAnn->getCallable('cli'), $dirAnn->get('CliPlugin', 'Callable'));
     });
     $Arg = new ReflectionClass('Symfony\\Component\\Console\\Input\\InputArgument');
     $Option = new ReflectionClass('Symfony\\Component\\Console\\Input\\InputOption');
     $console = new Application();
     list($functions, $plugins) = $loader($this->dirs);
     foreach ($plugins as $plugin) {
         $name = current($plugin->getArgs());
         $this->plugins[$name][] = $plugin->getObject();
     }
     foreach ($functions as $function) {
         $opts = array();
         $this->processCommandArgs($opts, 'Argument', $Arg, $function);
         $this->processCommandArgs($opts, 'Option', $Option, $function);
         $this->processWorker($opts, $function);
         $this->processPrompt($opts, $function);
         $this->registerCommand($console, $function, $opts);
     }
     return $console;
 }