运行 Laravel 命令依赖于环境变量

Run Laravel command dependent on environment variables

一般来说,如果想在本地查看路线,我会使用

php artisan route:list

当我不处理使用在我的本地环境和服务器之间声明不同的环境变量的文件时,它工作正常。现在我得到

PHP Notice: Undefined index: VARIABLE_NAME in ....php on line 12

Notice: Undefined index: VARIABLE_NAME in ....php on line 12

特别是在我使用的服务器中

if (!defined('VARIABLE_NAME')) { define('VARIABLE_NAME', $_SERVER['VARIABLE_NAME']); }

$variable = env('VARIABLE_NAME') ? env('VARIABLE_NAME') : VARIABLE_NAME;

基本上服务器和本地环境之间的区别是以下部分(本地我不使用并且是冲突的地方,因为没有$_SERVER['VARIABLE_NAME'])

if (!defined('VARIABLE_NAME')) { define('VARIABLE_NAME', $_SERVER['VARIABLE_NAME']); }

也测试了其他变体,比如

if (!defined('VARIABLE_NAME') or !getenv('VARIABLE_NAME')) { define('VARIABLE_NAME', $_SERVER['VARIABLE_NAME']); }

我可以更改本地代码并忽略该文件。然而,这是一个可以经常更改的文件,因此并不理想。

根据目标(见路线表),最方便的方法是什么?我所说的方便是指不必在 shell 中声明一个变量,也不必为本地和服务器维护不同的文件。

基于this answer,在运行宁

之前
php artisan route:list

我会运行

set -o allexport
source .env
set +o allexport

然后就能很好地看到路线