我正在开发一个具有相当大的 PHP 代码库的新项目。该应用程序使用了相当多的 PHP 常量(define('FOO', 'bar')
),特别是对于数据库连接参数之类的事情。这些常量都定义在一个配置文件中,该文件是require_once()
基本上应用程序中的每个类都直接直接调用。
几年前,这完全有道理,但从那时起,我就遇到了单元测试错误,类之间的紧密耦合确实困扰着我。这些常量闻起来像全局变量,并且在整个应用程序代码中直接引用它们。
这仍然是个好主意吗?将这些值复制到一个对象中并使用该对象(即一个 Bean - 我说过)通过依赖项注入将它们传递给与数据库交互的类是否合理?我这样做是否会破坏 PHP 常量的任何好处(例如速度或其他)?
我正在考虑的另一种方法是创建一个单独的配置 PHP 脚本来进行测试。我仍然需要找到一种方法来让被测试的类使用沙箱配置脚本而不是全局配置脚本。这仍然感觉很脆弱,但可能需要对整个应用程序进行较少的彻底修改。
在我看来,常量应该只在两种情况下使用:
- 实际恒定值(即永远不会改变的东西,
SECONDS_PER_HOUR
).
- 依赖于操作系统的值,只要应用程序在任何可能的情况下都可以透明地使用该常量。
即使如此,我也会重新考虑类常量是否更合适,以免污染常量空间。
在您的情况下,我认为常量不是一个好的解决方案,因为您将希望根据它们的使用位置提供替代值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)