我正在处理一个规模相当大的PHP代码库的新项目。该应用程序使用了很多PHP常量(例如
几年前这样做完全没有问题,但自从我开始进行单元测试后,这种紧密耦合的方式让我感到很不舒服。这些常量看起来像是全局变量,并且在整个应用程序代码中被直接引用。
这还是一个好主意吗?将这些值复制到一个对象中,并使用此对象(即Bean - 我说了)通过依赖注入将它们传递给与数据库交互的类,这样做是否合理?这样做会否破坏PHP常量的任何好处(例如速度等)?
我考虑的另一种方法是为测试创建单独的配置PHP脚本。我仍然需要找到一种方法让测试类使用沙盒配置脚本而不是全局配置脚本。这仍然感觉很脆弱,但可能需要对整个应用程序进行更少的修改。
define('FOO', 'bar')
),特别是用于数据库连接参数之类的内容。这些常量都定义在一个单独的配置文件中,由几乎每个类直接调用require_once()
。几年前这样做完全没有问题,但自从我开始进行单元测试后,这种紧密耦合的方式让我感到很不舒服。这些常量看起来像是全局变量,并且在整个应用程序代码中被直接引用。
这还是一个好主意吗?将这些值复制到一个对象中,并使用此对象(即Bean - 我说了)通过依赖注入将它们传递给与数据库交互的类,这样做是否合理?这样做会否破坏PHP常量的任何好处(例如速度等)?
我考虑的另一种方法是为测试创建单独的配置PHP脚本。我仍然需要找到一种方法让测试类使用沙盒配置脚本而不是全局配置脚本。这仍然感觉很脆弱,但可能需要对整个应用程序进行更少的修改。
#define CONSTANTS 'are fine'
的翻译是什么? - Marc B