2017-09-05 90 views
0

我正在構建一個Symfony應用程序,我希望能夠在Web平臺中直接配置它(即不必自己更改文件)。要做到這一點,我想用一個鍵和一個值來創建全局參數。例如,一個密鑰可能是一個字符串emails,並且該值是一個電子郵件列表。我應該使用文件還是數據庫表來存儲參數?

這可以很容易地在Symfony的使用parameter files和讀/與應用程序寫入該文件來完成,但我認爲這也可能是很好用一個數據庫,並創建一個parameter表,將有2列鍵和值。

您認爲在設計方面如何?使用一個而不是另一個會更好,還是你認爲這不是很重要?

編輯:我想要的是有我可以在我的應用程序中使用的動態參數。例如,我可以改變界面的顏色。

+0

該數據庫不用於保存應用程序參數.http://symfony.com/doc/current/best_practices/configuration.html – Sermanes

+0

謝謝我已閱讀文檔。我應該更具體。我想要的是能夠動態地改變我的應用程序將使用的「參數」,例如界面的顏色或用於需要報告的情況下聯繫的電子郵件列表。 –

+0

在這種情況下是啊 – Sermanes

回答

1

僅對參數在開發環境和生產環境之間切換時使用「參數文件(yml)」。 所以你可以備份和恢復分貝沒有問題。

使用localStorage或Cookies進行用戶配置。

將數據庫用於在開發環境和生產環境之間不改變的站點配置。

+0

感謝您的回覆。所以在我的情況下,我應該根據你所說的使用數據庫。 –

+0

我認爲你必須使用parameter.yml。該數據庫不用於保存應用程序參數。 – Sermanes

0

想象一下,您需要讓您的當前參數集可供您的同事與您一起處理您的應用程序。如果你有參數文件,你可以簡單地將它添加到你的git倉庫中,提交併提交到遠程。你將如何分享你的數據庫?當然,它會包括更多的步驟給你。另外,如果您想要將數據存儲從數據庫更改爲其他內容,則需要定義如何將配置實體再次映射到新存儲。根據這個假設,我會說參數文件更適合這個任務。

+0

我確實使用參數文件來獲取參數,我不需要定期更改參數。這裏的需求是不同的。比方說,我希望能夠改變界面的顏色。用一個文件,我需要:1)做出改變; 2)承諾; 3)部署。只是做一個小小的改變和一個頻繁的改變將是一個漫長的過程。我認爲應用程序運行時不應更改參數文件。 –

+0

我相信,因爲它是1)不是你的應用程序模型域的一部分; 2)應用程序部署時應該可以訪問它;它不應該存儲在您的數據庫中。數據庫不會影響應用程序配置。而且你錯了「有了文件,我需要:1)做出改變; 2)提交; 3)部署。做一個小小的改變和頻繁的改變將是一個漫長的過程。」我相信它應該在git倉庫中,但是沒有跟蹤系統(換句話說就是.gitignore) - 除非你不想分享它的版本。爲DB寫入CRUD將會更長久。 –

+0

此外,您將應用程序綁定到將配置置於數據庫的特定存儲。您想要更改存儲空間的圖像 - 無關緊要 - 您需要讓數據庫在您存儲您的配置時使用 - 這在這種情況下是不好的方法。 –

相關問題