检测是否从 Laravel 5 中的命令行运行
我有一个用例,如果应用程序通过Artisan(迁移,种子,route:list)从命令行运行,我们需要修改应用程序流。
在Laravel 4中,这可以像这样完成:
App::runningInConsole()
在Laravel 5中有等价物吗?
在这种情况下,使用环境(.env)变量不是首选,因为这些命令偶尔需要在生产环境中运行(指向生产资源),并且我宁愿避免诉诸重复(.env.commandline)文件。
我有一个用例,如果应用程序通过Artisan(迁移,种子,route:list)从命令行运行,我们需要修改应用程序流。
在Laravel 4中,这可以像这样完成:
App::runningInConsole()
在Laravel 5中有等价物吗?
在这种情况下,使用环境(.env)变量不是首选,因为这些命令偶尔需要在生产环境中运行(指向生产资源),并且我宁愿避免诉诸重复(.env.commandline)文件。
不确定是否有任何以前的版本,但在Laravel 5.2中,您仍然可以这样做,尽管文档中没有提到它。App::runningInConsole()
您可以使用 PHP 函数 (http://php.net/manual/en/function.php-sapi-name.php),查明脚本是否从命令启动。php_sapi_name
在你的情况下,你应该检查类似的东西
if (strpos(php_sapi_name(), 'cli') !== false) {
// Run from command
}
但是,您可能需要检查文档以找到要在每种情况下检查的正确值。(它有时可能会有所不同,但基本上应该总是有一个不同的输出来自通过命令启动的脚本)