4

Laravel 4 で PHP-CLI を使用してコントローラー/アクションを実行する方法はありますか? リクエストが CLI からのものである場合、別のアクションを実行するために拡張したいコントローラ/アクションがあります。リクエストを CLI リクエストとして識別する方法はありますか?

このサイトの Laravel ドキュメントは、現在のリクエストが Artisan CLI 経由かどうかを判断するためのメソッド Request::cli() があることを示唆しているようですが、Laravel 4 でこのメソッドを使用すると、エラーがスローされます。

未定義のメソッド Illuminate\Http\Request::cli() の呼び出し

基本的に、私は CakePHP から Laravel に移行したばかりで、この記事 (CakePHP の場合) で説明されているものと同様のことを達成したいと考えています: cron およびコマンドラインからコントローラーアクションを呼び出す

Laravel 4 Artisan Commands を使用できることは理解していますが、使用したいアプローチは可能ですか? もしそうなら、どのように?

4

1 に答える 1

9

Rob が既に述べたように、現在のスクリプトがコンソールで実行されているかどうかを判断するには、App::runningInConsole()単純なプレーン PHPを使用しますphp_sapi_name() == 'cli'

コンソールから controller@action を実行する場合、 または を使用してルートの 1 つを要求できますが、curlそれを行う適切な方法は、カスタムの職人コマンドwgetを使用することだと思います。コントローラーはクラスであるため、それらをインスタンス化して、職人のコマンド内から好きなように使用できます。

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

独自のアーティザンコマンドを簡単に開発する方法については、このビデオをご覧ください。

于 2013-11-19T15:41:14.763 に答える