Php 类中表示类型或消息的字符串列表的设计模式

Php 类中表示类型或消息的字符串列表的设计模式,php,oop,design-patterns,Php,Oop,Design Patterns,题目可能不是我问题的好描述,但我没有找到更好的题目 基本上,随着时间的推移,我遇到的一个常见问题是定义一个类,该类包含表示某种类型或状态的常量变量 <?php class Notification { const TYPE_MAIL = 'mail'; const TYPE_EXPORT = 'export'; ... } 我知道这个问题,我也听说过使用幻数(代码中使用的未定义字符串常量)的问题 我在这里找到一篇文章: 更好的链接: 我喜欢做的是在使用它们

题目可能不是我问题的好描述,但我没有找到更好的题目

基本上,随着时间的推移,我遇到的一个常见问题是定义一个类,该类包含表示某种类型或状态的常量变量

<?php
class Notification {

     const TYPE_MAIL = 'mail';
     const TYPE_EXPORT = 'export';
     ...
}

我知道这个问题,我也听说过使用幻数(代码中使用的未定义字符串常量)的问题

我在这里找到一篇文章: 更好的链接:

我喜欢做的是在使用它们的实体/模型中添加所有相关常量,这样它们就被放置在应用程序的正确上下文中

例如,在我的客户实体/模型中,我在类的顶部有一个区域用于类常量,客户表中的一个字段是type,相关常量是
const type\u DEMO=0;const TYPE_SHOP=1;const TYPE_SOMETHINGELSE=99


结果是当使用它们时,我可以说
$customerType=Customer::TYPE\u SHOP可读性很好:)

你试过这个吗:?我今天学到了一些新东西!谢谢说where type=“.Notification::type_MAIL.”有什么不对?列表可能会变得非常庞大,并且缺乏可维护性。我还没有找到更好的方法,因此在stack上发布了一篇帖子:)是的,这就是我描述的问题。我只是用字符串而不是数字:)我真的希望有比这个更好的解决方案。感谢您的反馈:)