我将 Laravel 6.x 用于客户的项目,其中我在 Artisan Command 中构建了一个用于同步数据的 API。
现在客户希望配置谨慎,远离主要源代码,并且尽可能没有任何后备值。这意味着我必须在.env
文件中定义配置并使用env()
没有任何回退默认值的方法。
env
这在 Laravel Artisan 命令类文件中必须是可能的,但是当我使用以下代码中的方法时,它无法按预期工作:
[站点根目录]\.env:
APP_ENV=local
[站点根目录]\app\Console\Commands\SyncSomeData.php:
use Illuminate\Console\Command;
class SyncSomeData extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'sync:some-data';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
exit(env('APP_ENV','staging1'));
}
}
这总是staging1
在控制台中打印,如果我使用它而不是给定的env
方法,那么它什么也不打印:
exit(env('APP_ENV'));
据我所知并且可以相信 Laravel 是最安全的,必须有办法让env
命令文件中没有后备值的方法工作,任何人都可以帮助实现这一点吗?