2014-04-21 85 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方式看起来并不坏。 –