gpt4 book ai didi

php - PHP 全局常量是一种良好的现代开发实践吗?

转载 作者:IT王子 更新时间:2023-10-28 23:53:53 25 4
gpt4 key购买 nike

我正在开发一个具有相当大的 PHP 代码库的新项目。该应用程序使用了相当多的 PHP 常量 ( define('FOO', 'bar') ),尤其是数据库连接参数之类的东西。这些常量都在一个配置文件中定义,该配置文件基本上由应用程序中的每个类直接require_once()

几年前,这完全有道理,但从那时起,我就遇到了单元测试错误,类之间的这种紧密耦合确实困扰着我。这些常量闻起来像全局变量,并且在整个应用程序代码中直接引用它们。

这还是个好主意吗?将这些值复制到一个对象中并使用该对象(即 Bean - 在那里,我说过)通过依赖注入(inject)将它们传递给与数据库交互的类是否合理?我这样做是否会破坏 PHP 常量的任何好处(比如速度或其他)?

我正在考虑的另一种方法是创建一个单独的配置 PHP 脚本用于测试。我仍然需要想办法让被测类使用沙箱配置脚本而不是全局配置脚本。这仍然感觉很脆弱,但它可能需要对整个应用程序进行更少的彻底修改。

最佳答案

在我看来,常量应该只在两种情况下使用:

  • 实际常量值(即永远不会改变的东西,SECONDS_PER_HOUR)。
  • 依赖于操作系统的值,只要应用程序可以在任何可能的情况下透明地使用常量即可。

即便如此,我也会重新考虑类常量是否更合适,以免污染常量空间。

在您的情况下,我认为常量不是一个好的解决方案,因为您会希望根据它们的使用位置提供替代值。

关于php - PHP 全局常量是一种良好的现代开发实践吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6736330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com