PHP 全局常量是一个好的现代开发实践吗?
2022-08-31 01:09:30
我正在开发一个具有相当大的PHP代码库的新项目。该应用程序使用相当多的PHP常量( ),特别是对于数据库连接参数之类的东西。这些常量都在一个配置文件中定义,该文件基本上由应用程序中的每个类直接定义。define('FOO', 'bar')
require_once()
几年前,这本来是完全有道理的,但从那时起,我就遇到了单元测试错误,类之间的这种紧密耦合真的困扰着我。这些常量闻起来像全局变量,它们在整个应用程序代码中直接引用。
这仍然是一个好主意吗?将这些值复制到一个对象中并使用此对象(即Bean - 在那里,我说过)通过依赖注入将它们传达给与数据库交互的类是否合理?通过这样做,我是否击败了PHP常量(比如速度或其他)的任何好处?
我考虑的另一种方法是创建一个单独的配置PHP脚本进行测试。我仍然需要找到一种方法来让受测类使用沙盒配置脚本而不是全局配置脚本。这仍然感觉很脆弱,但可能需要对整个应用程序进行较少的直接修改。