我有一个用例,如果通过Artisan从命令行运行应用程序(迁移,种子,路由:列表),我们需要修改应用程序流.
在Laravel 4中,这可以这样做:
App::runningInConsole()
Run Code Online (Sandbox Code Playgroud)
Laravel 5中是否有相同的名称?
在这种情况下,使用环境(.env)变量不是首选,因为这些命令偶尔需要在生产中运行(指向生产资源),我宁愿避免使用重复(.env.commandline)文件.
Fah*_*hmi 35
不确定任何以前的版本,但在Laravel 5.2中你仍然可以做,App::runningInConsole()
尽管文档中没有提到它.
Clé*_*let 19
您可以使用PHP函数php_sapi_name
(http://php.net/manual/en/function.php-sapi-name.php)来确定脚本是否是从命令启动的.
在你的情况下,你应该检查类似的东西
if (strpos(php_sapi_name(), 'cli') !== false) {
// Run from command
}
Run Code Online (Sandbox Code Playgroud)
您可能必须检查文档以找到在每种情况下检查的正确值.(它有时可能会有所不同,但基本上应该始终存在与通过命令启动的脚本不同的输出)
Bri*_*nCP 13
从Laravel 5.1开始,这可以... $app->runningInConsole()
https://laravel.com/api/5.1/Illuminate/Foundation/Application.html
基本用法:
if (! $app->runningInConsole()) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
小智 7
任何人都可以使用 laravelapp()
辅助函数来避免任何与命名空间相关的问题。所以要检查脚本是否在 cli 或浏览器中运行,可以使用这行代码app()->runningInConsole()
基本用法:
if ( app()->runningInConsole() ){
// it's console.
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9733 次 |
最近记录: |