2014-04-21 100 views
0

我很難找到這些信息。Zend Framework 2 - 獨立的環境開發/分期/生產/測試

在ZF1中可以將開發,生產,分期和測試環境分開。

在ZF1中,我對每種類型的環境數據都有不同的數據庫配置。我已準備好4個設置並寫入文件application.ini

在ZF2中,我對如何創建這4個環境存在疑問,實際上在我的應用程序週期中使用了4個。

關於/ config/autoload我有很多文件。

cache.local.php 
global.php 
zenddevelopertools.local.php 
zfcuser.global.php 

文檔說: 默認情況下,該應用程序配置加載所有的configs在

' ./config/autoload/{ *. } { global, local } . ' php 

的2表明,只有環境,全局和局部到我的機器。

我的主要問題:

1 - 框架如何識別環境,如全球/地方? ZF1設置在index.php中,通過行

defined (' APPLICATION_ENV ') 
    | | Define (' APPLICATION_ENV ' 
       (getenv (' APPLICATION_ENV ') ? getenv (' APPLICATION_ENV ') 
             ' Production ')); 

它實際上並不出現在ZF2中。

2 - 如何將這2個環境擴展到4?

Global - Production 
Staging - Staging is AB test 
Testing - For PHPUnit Testing Full (i test dbs Also , future I\'ll go with sqlite but today was mysql) 
Development - With dummy data created to have life and system run properly on my computer . 

3 - 我還沒有找到明確的方式來聲明測試的開發環境。如果你需要通過htaccess設置ENV,它只會對Apache正確工作?正如在PHPUnit中設置測試的時間一樣?以及如何載入ZF2正式的測試臺憑證?

回答

0

ZF2不具有不同環境的內置概念。默認情況下,'全局'配置文件被簽入到源代碼管理,但'本地'配置沒有。所以這個想法是你的大部分配置都在全局文件中,但是特定於環境的配置在本地文件中。

比方說你的cache.local.php配置包含像路徑一樣的env特定的東西。如果是這樣的話,你會在生產,分期和開發時擁有這個文件;但其內容會有所不同。

如果你真的想堅持ZF1的方式,並希望你的源代碼控制環境特定的配置,這也很容易實現。看到這篇博文:http://blog.evan.pro/environment-specific-configuration-in-zend-framework-2。您需要定義APPLICATION_ENV常量才能正常工作(您可以從您的問題中刪除'n'paste從public/index.php中刪除)。

+0

感謝您的幫忙,我做到了,努力工作。這是一個恥辱,我不明白如何使用本地/全球使用不同的配置,如測試,但zf1方式看起來並不壞。 –