gpt4 book ai didi

php - Laravel 配置文件结构

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:46:19 24 4
gpt4 key购买 nike

我们对多个站点使用相同的代码库。并且会有配置文件,它们都是站点特定的和通用的设置。我们希望将通用设置与站点特定设置合并。

我们的配置文件夹结构是 -

应用程序/配置 -

  • ssc/
  • brg/
  • app.php
  • common.php

等等。 sscbrg 将分别保存 sscbrg 站点的站点特定配置。

为此我们必须做 -

    config('common');
config('brg.settings');

但是在我们的代码库中我们没有使用子文件夹机制。当我们将实现子文件夹系统时,我们必须更改代码库以实现我想避免的特定于站点的文件夹。

有什么方法可以实现子文件夹系统并且不必更改代码库吗?

最佳答案

在 Multi-Tenancy 环境中

您可以将设置合并到中间件内的通用配置中,或者在您知道自己所在的站点时:

config('common');
config('brg.settings'); // inside each have the same keys
config('ssc.settings'); // inside each have the same keys

假设您需要 common.settings,其中 settings 来自 brg.settingsscc.settings 您可以尝试以下操作:

config([
'common' => array_merge(
config('brg'),
config('common')
)
]);

如果你想修改它以便 brg.settings 成为 common 中的键,请尝试以下操作:

config([
'common' => array_merge(
config('brg.settings'),
config('common')
)
]);

更新 - 对于共享(复制)文件夹方法

假设您的配置文件夹有:

config/common.php
config/brg/settings.php

然后您可以尝试创建一个从 config/brg/settings.phpconfig/settings.php

的符号链接(symbolic link)
$ cd config
$ ln -s brg/settings.php settings.php

你甚至可能想将 brg/settings.php 从 config 文件夹中移出到类似 sites/brg/settings/php 的文件夹中,以避免 Laravel 构建组合所有站点的配置,只需使用配置中的符号链接(symbolic link)即可。

或者

作为部署的一部分,您可以创建一个 artisan 命令来创建您需要的物理配置文件,如 config/site/settings.php 给定 .env 中的站点。

我认为将站点特定配置移出配置文件夹以避免 Laravel 需要解析不需要的文件仍然很好。

关于php - Laravel 配置文件结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51151560/

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