gpt4 book ai didi

php - Laravel 5 基于 .env.master 加载 env 文件?

转载 作者:可可西里 更新时间:2023-11-01 13:17:15 31 4
gpt4 key购买 nike

我打算做一些类似的事情,通过在 .env.master 中创建一个变量来指定在应用程序引导期间加载什么 env 文件,例如 ENV_VER = dev.env

这是因为我有多个分支,例如 development、release-1.1 等。因此,通过根据主 env 文件中指定的名称加载 env 文件,开发人员不再需要将新变量复制并粘贴到他们的本地.env 的副本,而只是指定要在主环境文件中加载的环境文件版本。顺便说一下,我有几个 env 文件,例如 dev.env、1.6.env 等。

这可能吗?

最佳答案

当然,我自己每次都倾向于“弯曲”一个框架,总有办法,但并不总是最好的解决方案。我不会在这里给出完整的实现,只是为您指出一些可能对您有用的方向。

您可以扩展 Laravel 的基础应用程序类 Illuminate\Foundation\Application,其中包含 $environmentFile 变量存储在应用程序引导期间加载的环境文件,或者可能重写函数 loadEnvironmentFrom ($file)environmentFile()。整个逻辑由您决定。

所以基本上,为了能够“播放”.env 加载,您需要做的就是...

创建一个扩展 Laravel 应用类的新应用类:

namespace MyNamespace;
...

use Illuminate\Foundation\Application as App;

/**
* I'm doing alots of magic with .env in this class
*/
class Application extends App
{
...

/**
* The environment file to load during bootstrapping.
*
* @var string
*/
protected $environmentFile = '.env.main';

...
}

现在,因为我们有一个新的bootstraping 类,我们必须告诉 Laravel 我们想要使用它。因此,您必须在创建新实例的位置修改 bootstrap/app.php 文件:

...
$app = new MyNamespace\Application(
realpath(__DIR__.'/../')
);
...

注意:为了获得灵感,我建议您真正查看 Illuminate\Foundation\Application 类。

关于php - Laravel 5 基于 .env.master 加载 env 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43731080/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com