есть консольное приложение, лежит стандартно в application.commands.TestCommand
есть контроллер site, как из контроллера запустить TestCommand с целью отладки?
как из контроллера запустить консольное приложение
Re: как из контроллера запустить консольное приложение
Можно вот так:
Код: Выделить всё
$sCommandPath = Yii::app()->getBasePath() . DIRECTORY_SEPARATOR . 'commands';
$oRunner = new CConsoleCommandRunner();
$oRunner->addCommands( $sCommandPath );
$aArgs = array( 'yiic', 'command', 'action' );
$oRunner->run( $aArgs );
- Ghost_nsk
- Сообщения: 825
- Зарегистрирован: 2012.01.01, 00:45
- Откуда: Новосибирск
- Контактная информация:
Re: как из контроллера запустить консольное приложение
есть отличия вот от такого метода:
?
Код: Выделить всё
// пошли тесты
Yii::import('application.commands.*');
$track = new ParceltrackCommand('parcel','nginx');
// пошла отладка
Re: как из контроллера запустить консольное приложение
Ну я думаю все зависит от самой команды, и от того насколько нужно получить окружение близкое к реальному запуску из console.
Так например только то что конфиг будет использоваться не консольный а web приложения (если запускать консольное приложение из контроллера) уже отличает окружение отладки от рабочего.
В чем конкретно будут отличия между тем что я предложил, и Вашим вариантом сказать не могу. Возможно отличия будут минимальны, или отсутствовать вовсе.
Так например только то что конфиг будет использоваться не консольный а web приложения (если запускать консольное приложение из контроллера) уже отличает окружение отладки от рабочего.
В чем конкретно будут отличия между тем что я предложил, и Вашим вариантом сказать не могу. Возможно отличия будут минимальны, или отсутствовать вовсе.