php - 如何存储 zend、phing 和 phpunit 的共享配置?

标签 php zend-framework configuration phpunit phing

我有一个用 Zend Framework 编写的 PHP 应用程序。它使用 Phing 作为构建系统,使用 PHPUnit 进行单元测试。所有这些部分都有配置设置。 Zend 使用 application.xml,Phing 使用 build.xml 和可选的一些 build.properties,PHPUnit 使用 phpunit.xml.

但是我应该在哪里存储所有三个组件所需的信息呢?想想数据库配置(例如密码)。

在我的例子中,application.xml 有不同的部分(开发、暂存、生产),所有部分都具有不同的数据库配置。我最近在我的应用程序中集成了一个 ORM,现在我想对我的模型进行单元测试。所以我有第四个数据库(unittesting),由 PHPUnit 使用。

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

我的第一直觉是将所有四个数据库的所有配置放在 build.properties 中,让 Phing 简单地生成 application.xmlphpunit.xml 。但是,让构建系统生成配置文件感觉很很脏

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

想法

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

  • 数据库配置(开发、暂存、生产和单元测试)
  • 包括路径。我们使用一些不适用于自动加载器的旧库。到目前为止,我们已经使用智能自动前置文件部分解决了这个问题。
  • 一些网络服务 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.

嗯,完全生成它们似乎有点脏。但是,如果构建系统只是简单地从 Phing 的 build.properties 文件中对各种配置文件的 .dist 版本进行 token 替换,那对我来说似乎没问题。

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

关于php - 如何存储 zend、phing 和 phpunit 的共享配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6857467/

相关文章:

php - 我如何判断 moodle cron 是否正常工作?

php - 自动生成 Doctrine 的 get set 方法

php - 使用 Zend Autoloader : Difference between including trailing "_" and not? 注册命名空间

zend-framework - 如何对 zend Action Controller 进行单元测试?

php - 您建议使用哪种方式使用 php 进行 zend lucene 搜索或使用 lucene 本身并使用 php 进行移植?

c# - 在 TFS 或共享文件夹中存储内容图像以便在多个网站中使用的正确方法是什么?

java - 为什么 SonarQube 无法分配请求的地址?

php - 使用 PDO 创建一个 mysql 查询函数,不会插入行

java - 在网络服务器上发布图像问题

android - Logback.xml 保存日志的相对文件路径