Zend Framework 2 - 单独的环境开发/分期/生产/测试

时间:2014-04-21 18:24:57

标签: php .htaccess doctrine-orm zend-framework2 phpunit

我无法找到这些信息。

在ZF1中,可以在开发,生产,升级和测试中划分环境。

在ZF1中,我对每种类型的环境数据都有不同的数据库配置。我已准备好4个设置并将其写入application.ini文件

在ZF2中,我对如何创建这4个环境存有疑问,实际上我在应用程序周期中使用了4个。

/ config / autoload上的

我有很多文件。

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

文件说: 默认情况下,此应用程序配置为加载

中的所有配置
' . / config / autoload / { *. } { global, local } . ' php

2表示我的开发机器只有环境,全局和本地环境。

我的主要问题:

1 - 框架如何识别环境,例如Global / Local? ZF1通过行

设置在index.php中
defined (' APPLICATION_ENV ' )
    | | Define (' APPLICATION_ENV '
              ( getenv ( ' APPLICATION_ENV ' ) ? getenv ( ' APPLICATION_ENV ' )
                                         ' Production '));

实际上并未出现在ZF2中。

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专门加载到测试平台的凭证中?

1 个答案:

答案 0 :(得分:1)

ZF2没有不同环境的内置概念。默认情况下,“全局”配置文件签入源控件但“本地”配置不是。因此,您的想法是大多数配置都在全局文件中,但特定于环境的配置在本地文件中。

假设您的cache.local.php配置包含特定于env的内容,例如路径。如果是这样,你就可以在生产,登台和开发中使用这个文件;但它的内容会有所不同。

如果您真的想要坚持使用ZF1方式,并希望在源代码管理中使用特定于环境的配置,那么这也很容易实现。请参阅此博文:http://blog.evan.pro/environment-specific-configuration-in-zend-framework-2。您需要定义APPLICATION_ENV常量才能使其正常工作(您可以从问题public/index.php中删除'。'。