2013-09-04 1 views
4

Есть ли способ в Laravel 4 запустить мой контроллер/действие с помощью PHP-CLI? У меня есть контроллер/действие, которое я хотел бы расширить, чтобы выполнить альтернативное действие, если запрос поступает из CLI, так есть ли способ идентифицировать запрос как запрос CLI?Выполнение маршрута (контроллер/действие) с использованием PHP CLI и обнаружение запроса CLI

документация Laravel на this site, кажется, предполагает, что существует метод запроса :: Cli() для определения, если текущий запрос через CLI Artisan, но когда я использовал метод в Laravel 4, он выдает ошибку:

Call to undefined method Illuminate\Http\Request::cli()

в принципе, я только что переехал из CakePHP в Laravel и хотел бы сделать что-то подобное в качестве того, что описано в этой статье (для CakePHP): Calling controller actions from cron and the command line

Я понимаю, что я могу работать с Laravel 4 Artisan Команды, но подход, который я хотел бы использовать, возможно? И если да, то как?

+2

Похоже, вы получили более старую версию руководства, попробуйте http://laravel.com/docs. (и обнаруживает, что приложение запущено из cli: 'App :: runningInConsole()') –

ответ

9

Как уже сказал Rob, чтобы определить, запущен ли текущий скрипт в консоли, App::runningInConsole() или простой простой PHP php_sapi_name() == 'cli'.

Что касается работы контроллера @ действия с консоли, вы можете использовать curl или wget запросить один из ваших маршрутов, но я думаю, что правильный способ сделать это было бы использовать custom artisan command. Ваши контроллеры являются классами, так что вы можете создать экземпляр их и использовать как угодно из вашей команды ремесленника:

$controller = new SomeController; 
$controller->someAction(); 

Часы this video для введения легко разрабатывать собственные команды ремесленника.

+0

Очень полезно! Благодарю. – sharmil

Смежные вопросы