首页 > 解决方案 > 根据环境变量运行 Laravel 命令

问题描述

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

php artisan route:list

当我不处理使用在我的本地环境和服务器之间声明不同的环境变量的文件时,这工作得很好。现在我明白了

PHP 注意:未定义索引:第 12 行 ....php 中的 VARIABLE_NAME

注意:未定义的索引:第 12 行 ....php 中的 VARIABLE_NAME

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

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 中声明变量 one 或不必为本地和服务器维护不同的文件。

标签: phplaravelbashenvironment-variablesamazon-elastic-beanstalk

解决方案


基于这个答案,在运行之前

php artisan route:list

我会跑

set -o allexport
source .env
set +o allexport

然后能够很好地看到路线

在此处输入图像描述


推荐阅读