4

Laravel 4 中有没有办法使用 PHP-CLI 运行我的控制器/动作?我有一个控制器/操作,如果请求来自 CLI,我想扩展它以执行替代操作,那么有没有办法将请求标识为 CLI 请求?

该站点上的 Laravel 文档似乎表明有一个方法 Request::cli() 用于确定当前请求是否通过 Artisan CLI,但是当我在 Laravel 4 中使用该方法时,它会引发错误:

调用未定义的方法 Illuminate\Http\Request::cli()

基本上,我刚刚从 CakePHP 迁移到 Laravel,并希望完成与本文中描述的类似的事情(对于 CakePHP):Calling controller actions from cron and the command line

我知道我可以使用 Laravel 4 Artisan Commands,但是我想使用的方法可行吗?如果是这样,怎么办?

4

1 回答 1

9

正如 Rob 已经说过的,要确定当前脚本是在控制台中运行,App::runningInConsole()还是使用简单的 PHP php_sapi_name() == 'cli'

至于从控制台运行 controller@action,您可以使用curlwget请求您的一条路线,但我认为正确的做法是使用自定义工匠命令。您的控制器是类,因此您可以实例化它们并在您的工匠命令中随意使用:

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

观看此视频,了解如何轻松开发您自己的工匠命令。

于 2013-11-19T15:41:14.763 回答