4

我已经阅读了几个关于这个主题的教程,但仍然没有完全理解想要让 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 在设计上不了解环境概念 - 留给开发人员来实现。我不完全清楚它应该如何完成......

通读 Evan 的帖子,似乎有 2 种机制——首选的一种是不使用 APPLICATION_ENV 常量,只使用 .local、.global 文件?

那应该如何工作?有人可以描述他们为使 ZF2 环境感知而采取的过程吗?当代码被推送到不同的环境时你会做什么?


似乎现在的想法是针对 ex:module1.local.php.dist-testingmodule1.local.php.dist-productionmodule1.local.php.dist-development以及何时将代码移动到不同的环境想法是这些应该为该环境复制重命名并手动填写密码?我对么?

4

1 回答 1

7

这个想法是您为您的应用程序提供一些合理的默认配置,但您不会在代码中为具体环境存储任何内容,也不会在版本控制系统中存储任何内容。

例如,如果您有两台服务器,一台用于生产,一台用于开发,则您只需在此类 .local 文件中提供一个环境的配置详细信息。这样,您的开发服务器就无法知道例如生产数据库的主密码。因此,您不会意外地获得一个新的开发服务器,而有人忘记设置 APPLICATION_ENV,然后您开始开发并弄乱您的生产数据库,因为应用程序知道密码。

或者反过来说,新的生产服务器不会意外访问开发数据库。

因此,您的应用程序通过读取存在的文件自动了解环境 - 每个存在的环境只有一个文件包含所有详细信息。

这给管理员或配置所有内容的 puppet 脚本提供了确保正确文件的负担。但是环境特定的配置不会部署在应用程序中。

于 2012-12-05T22:36:26.793 回答