2017-03-07 74 views
0

我的项目是两个Laravel应用程序在一个文件夹中。为什么两个独立的应用程序而不是一个?我有很好的理由。无论如何,例如,每次我想在config(config/app.php)中更改应用程序名称时,我都会在两个应用程序的两个目录中编辑.env文件,然后执行artisan config:cache来更新缓存的配置。Laravel:通过一个配置加入两个应用程序

这不是一个任务或任何东西,但它是一个糟糕的设计,我相信。所以,我正在寻找一种方法,将这两个应用程序之间共享的值分配到一个单独的文件中。并让这些应用程序加载此文件并覆盖/将其中的值应用于应用程序配置。

所以,现在我在根目录中有一个config.php(其中包含/ app1和/ app2中的其他两个应用程序)。在每个应用程序的AppServiceProvider中,我调用config.php并循环访问值并使用Config::set(..., ...)设置每个值。

这对我很好,但当然,更改\ Config包中加载的值不会更改从此前获取的值。例如,app()->environment()返回config/app.php中设置的值,而不是全局config.php中引入的新值。这是因为App库在我可以覆盖它之前要求env属性!

所以,我想要你的帮助是:你要么告诉我一个更智能/标准的方式来实现1配置2应用程序设置。或者告诉我在哪里,通过去除.env的一个文件,把与新值将覆盖应用程序配置代码从我的全球config.php(目前我把代码register()App\Providers\AppServiceProvider

回答

1

你可以分享env设置,并作出符号链接到其他文件而不是通用文件。在这种情况下,如果您更改文件,那么这两个应用程序都会更改值。

+0

这是一个非常好的解决方案。但是我为这两个应用程序保留了单独的'.env'文件,因为我们希望将某些配置属性分开。 – Dewan159

+0

单独的配置可以用'config/app.php'来完成,以重写env变量。 –

相关问题