2013-08-18 3 views
0

Я создал небольшой инструмент командной строки, чтобы помочь мне запустить сайты. Он использует консоль Symfony2 для создания команд и добавления некоторой структуры. То, что я пытаюсь понять, - это если есть способ, я могу заполнить «пустую» или команду по умолчанию, поэтому, если вы не добавили команду, она просто по умолчанию использует это. Примером может помочь объяснить:«пустая» команда для консоли symfony2

А «нормальный» консольная команда будет выглядеть следующим образом:

php launch site foo

Я хочу, чтобы это сделать то же самое, что и выше:

php launch foo

Единственное, что я могу придумать, это сортировать короткое замыкание процесса application-> run и проверять, находится ли «foo» в моем собственном списке команд, если это не то, чтобы заставить консоль запускать сайт foo. Честное дело в том, что если вы просто опечатали другую команду, система просто попробует и запустится как сайт, а вместо сообщения об ошибке вы получите сообщение о том, что он не может запустить этот сайт (который ошибка, но неправильная ошибка, а не полезная для пользователя).

Возможно, я что-то пропустил в консольных документах, но есть ли способ сделать то, что я здесь пытаюсь?

+0

Вы можете сделать сайт необязательным с «php launch -site = TheSite foo». Это то, о чем вы просите? – Cerad

+0

Если это лучшее, что я могу сделать, это нормально, но я действительно хотел сделать это без каких-либо дополнительных параметров. – JoeCianflone

ответ

0

Так что я в конечном итоге делает просто попытка мой собственный матч, если я могу найти команду, то я запустить приложение в обычном режиме, если нет, то я пытаюсь запустить сайт:

if (!array_key_exists($argv[1], $list)) 
    { 
     $cmd = $this->application->find('launch'); 
     $args = array(
      'command' => 'launch', 
      'alias' => $argv[1] 
     ); 

     $input = new ArrayInput($args); 
     $output = new ConsoleOutput(); 
     $cmd->run($input, $output); 
    } 
    else 
    { 
     $this->application->run(); 
    } 

It работает отлично, он просто чувствует себя немного мхе, я открыт для других предложений, если у кого-то есть их.