php - 我应该如何在 PHP 中保存我的常量

标签 php enums

<分区>

现在我的项目中有大量常量字符串和枚举。从一开始我就使用以下方法(伪 php 示例代码):

class Constants implements iStatuses, iEmailTypes {
}

interface iStatuses {
    const STATUS_NEW = 1;
    cosnt STATUS_UPDATED =2;
    ...
}

interface iEmailTypes {
    const EMAIL_TYPE_NEW = 1;
    const EMAIL_TYPE_UPDATED =2;
    ...
}

由于我在 index.php 中包含了“Constants”类,因此这种方法允许我在代码的任何位置以下列方式获取我的常量。

$this->sendEmailByType(CONSTANTS::EMAIL_TYPE_NEW);

但是,我完全可以看到这种方法的缺点:

  1. 常量类包含大量枚举和常量,很难获得正确的常量。命名约定有助于解决它,但我不喜欢这样,因为它需要额外的思考来确定我需要什么常量
  2. 常量类太大太乱
  3. 我需要跟踪所有由 Cosntants 类实现的接口(interface)。

由于我的项目现在变得越来越大,我们需要将它与另一个项目的代码合并,因此需要更改类常量方法。但是,我有太多基于该类的依赖项。我应该如何重构该方法,以免破坏使用常量类值的旧代码。

请分享您的想法和建议,如何改进我的“常量”方法,或者确认它相当不错并且我应该支持它。

提前谢谢你。

最佳答案

为什么不为每个上下文设置常量类。即

class Statuses 
{
    const STATUS_NEW = 1;
    const STATUS_UPDATED =2;
    ...
}

class EmailTypes 
{
    const EMAIL_TYPE_NEW = 1;
    const EMAIL_TYPE_UPDATED =2;
    ...
}

稍后当您或其他程序员想要为您的应用程序做出贡献时,他们可以轻松地检查与他们期望的主题相关的常量,而不是查看大量常量。

.e.g 一旦寻找电子邮件类型的标志,我希望在 EmailType:: 中找到它,如果它不存在,请放心将它添加到同一个类中。

关于php - 我应该如何在 PHP 中保存我的常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36397580/

相关文章:

c - 遍历枚举值

java - 简单整数枚举

enums - 为什么我不能从枚举中可变地借用一个原语?

enums - 在 Java API 中使用枚举

php - 检测虚拟机 ovf 中所做的更改

PHPMailer 每第 75 个字符插入 '=' 等号

php - 推送通知适用于开发,而不是生产

PHP 7.2.2 + mysql 8.0 PDO 给出 : authentication method unknown to the client [caching_sha2_password]

java - 从 JNI 调用 Java Enum 方法

php - PHP中POST请求后如何获取HTTP响应头?