2012-12-05 36 views
4

我讀過關於這個問題的幾個教程,但仍然沒有完全得到什麼從開發商想使ZF2應用環境感知預期'S:在ZF2中生產,開發,配置配置?

http://blog.evan.pro/environment-specific-configuration-in-zend-framework-2
http://www.spiffyjr.me/2012/06/17/how-does-configuration-work-in-zf2/comment-page-1/

ZF2不是意識到環境概念設計 - 由開發人員來執行。我不完全清楚它應該怎麼做...

通過埃文的帖子閱讀,似乎有2機制 - 首選一個是不使用APPLICATION_ENV常量,只是.local,.global文件?

這應該如何工作?有人能描述一個他們想要讓ZF2環境感知的過程嗎?當代碼被推送到不同的環境時你做了什麼?


好像這個想法是正確的,現在有防爆:module1.local.php.dist-測試module1.local.php.dist生產module1.local.php .dist-development當代碼移動到不同的環境時,想法是這些應該被複制重命名爲該環境並且手動填寫密碼?我對麼?

+0

還有另一篇文章埃文也是如此,在那裏,他介紹瞭如何使ZF1樣ENV特定的配置工作> http://blog.evan.pro/environment-specific-configuration-in-zend-framework-2 兩者都可以接受,新東西只是一些人的偏好。在公司世界裏,大多數情況下配置將由開發人員處理,因爲服務器人員不想接觸我們的配置,所以env特定的方法仍然是最好的方式 – Sam

回答

7

的想法是,你提供你的應用程序的一些合理的默認配置,但是你不存儲任何與你的代碼的具體環境,也不在你的版本控制系統。

如果您有例如兩臺服務器,一個用於生產,一個用於開發,你提供這樣的。本地文件一個單一的環境只配置細節。這樣,你的開發服務器就無法知道例如生產數據庫的主密碼。所以不會意外發生,你得到一個新的開發服務器,有人忘記設置APPLICATION_ENV,並開始開發和搞亂生產數據庫,因爲應用程序知道密碼。

或者相反,新的生產服務器不會意外地訪問開發數據庫。

所以,你的應用程序知道環境是讀取存在於文件自動 - 並沒有因環境而目前擁有的所有細節只有一個文件。

這會增加確保向管理員提供正確文件的負擔 - 或者配置所有內容的puppet腳本。但特定於環境的配置不會在應用程序內部署。

+0

如何部署到具有不同環境的另一臺服務器看起來像?檢查代碼,重命名dist文件並手動填寫密碼? –

+0

「這會增加確保向管理員提供正確文件的負擔 - 或配置所有內容的傀儡腳本」 - 您的答案完全屬於ZF2文檔。謝謝。現在更清楚了。 –

+0

我相信部署方法可以從版本控制中獲取所有應用程序文件,從不同的源添加適當的local.php文件,並將所有內容都推送到服務器。或者避免刪除當前版本中仍然存在的local.php文件。 – Sven