在 Laravel 5 中从命令行检测是否 运行
Detect if running from the command line in Laravel 5
我有一个用例,如果应用程序是通过 Artisan 从命令行 运行(迁移、种子、route:list),我们需要修改应用程序流程。
在 Laravel 4 中可以这样做:
App::runningInConsole()
在Laravel 5中是否有等价物?
在这种情况下不推荐使用环境 (.env) 变量,因为这些命令偶尔需要 运行 用于生产(指向生产资源),我宁愿避免求助于重复(.env.commandline) 个文件。
您可以使用 PHP 函数 php_sapi_name
(http://php.net/manual/en/function.php-sapi-name.php),查明脚本是否从命令启动。
在你的情况下,你应该检查类似
的内容
if (strpos(php_sapi_name(), 'cli') !== false) {
// Run from command
}
尽管如此,您可能必须查看文档以找到正确的值以在每种情况下进行检查。 (有时可能会有所不同,但基本上通过命令启动的脚本应该总是有不同的输出)
不确定任何以前的版本,但在 Laravel 5.2 中你仍然可以做 App::runningInConsole()
尽管文档中没有提到它。
从 Laravel 5.1 开始,这有效... $app->runningInConsole()
https://laravel.com/api/5.1/Illuminate/Foundation/Application.html
基本用法:
if (! $app->runningInConsole()) {
// do something
}
任何人都可以使用 laravel app()
辅助函数来避免任何与名称空间相关的问题。因此,要检查脚本在 cli 或浏览器中是否为 运行,可以使用这行代码 app()->runningInConsole()
基本用法:
if ( app()->runningInConsole() ){
// it's console.
}
我有一个用例,如果应用程序是通过 Artisan 从命令行 运行(迁移、种子、route:list),我们需要修改应用程序流程。
在 Laravel 4 中可以这样做:
App::runningInConsole()
在Laravel 5中是否有等价物?
在这种情况下不推荐使用环境 (.env) 变量,因为这些命令偶尔需要 运行 用于生产(指向生产资源),我宁愿避免求助于重复(.env.commandline) 个文件。
您可以使用 PHP 函数 php_sapi_name
(http://php.net/manual/en/function.php-sapi-name.php),查明脚本是否从命令启动。
在你的情况下,你应该检查类似
的内容if (strpos(php_sapi_name(), 'cli') !== false) {
// Run from command
}
尽管如此,您可能必须查看文档以找到正确的值以在每种情况下进行检查。 (有时可能会有所不同,但基本上通过命令启动的脚本应该总是有不同的输出)
不确定任何以前的版本,但在 Laravel 5.2 中你仍然可以做 App::runningInConsole()
尽管文档中没有提到它。
从 Laravel 5.1 开始,这有效... $app->runningInConsole()
https://laravel.com/api/5.1/Illuminate/Foundation/Application.html
基本用法:
if (! $app->runningInConsole()) {
// do something
}
任何人都可以使用 laravel app()
辅助函数来避免任何与名称空间相关的问题。因此,要检查脚本在 cli 或浏览器中是否为 运行,可以使用这行代码 app()->runningInConsole()
基本用法:
if ( app()->runningInConsole() ){
// it's console.
}