2017-03-07 51 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變量。 –

相關問題