如何存储zend,phing和phpunit的共享配置?

前端之家收集整理的这篇文章主要介绍了如何存储zend,phing和phpunit的共享配置?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个用Zend Framework编写的 PHP应用程序.它使用Phing构建系统,使用PHPUnit进行单元测试.所有这些部件都有配置设置. Zend使用application.xml,Phing使用build.xml和可选的一些build.properties,PHPUnit使用PHPunit.xml.

但是,我在哪里存储所有三个组件所需的信息?考虑数据库配置(例如密码).

在我的例子中,application.xml有各种各样的部分(dev,staging,production),它们都有不同的数据库配置.我最近在我的应用程序中集成了一个ORM,现在我想对我的模型进行单元测试.所以我有第四个数据库(单元测试),由PHPUnit使用.

PHPUnit可以处理夹具数据,但不能处理数据库架构.所以,我在想我会编写一个Phing构建目标,将数据库模式从生产或登台复制到unittest数据库.这样我就可以获得额外的好处,甚至可以对我的数据库迁移脚本进行单元测试.但为了做到这一点,Phing需要同时访问多个数据库.

我的第一个直觉就是将所有四个数据库的所有配置都放在build.properties中,让Phing只生成application.xml和PHPunit.xml.但是,让构建系统生成配置文件感觉很糟糕.

什么是最好的解决方案?或者我应该简单地复制配置细节而不用担心太多?

思考

我可以简单地复制它们.它只是一些设置,它们不应经常更改.但我敢打赌,当他们改变时,我会忘记重复(因为它不经常发生).共享参数包括

>数据库配置(开发,升级,生产和单元测试)
>包含路径.我们使用一些不适用于自动加载器的旧库.到目前为止,我们已经通过智能自动前置文件部分解决了这个问题.
>一些Web服务API凭据

My first gut instinct was to put all the configuration for all four databases in build.properties and have Phing simply generate application.xml and PHPunit.xml. But,it feels eh,dirty to have a build system generate configuration files.

好吧,完全生成它们似乎有点脏.但是如果构建系统只是在各种配置文件的.dist版本上从Phing的build.properties文件中替换令牌,那对我来说似乎没问题.

有关示例,请参阅source code of Dasprids blog.

猜你在找的PHP相关文章