我正在编写一个 Symfony 的 Bundle 来管理 AWS SES 发送的 AWS SNS 通知。
我代表一个 Bounce 对象,目前我正在使用常量:
/**
* A Bounce Entity.
*
* @see http://docs.aws.amazon.com/ses/latest/DeveloperGuide/notification-contents.html#bounce-object
*/
class Bounce
{
const TYPE_PERMANENT = 'Permanent';
const TYPE_PERM_GENERAL = 'General';
const TYPE_PERM_NOEMAIL = 'NoEmail';
const TYPE_PERM_SUPPRESSED = 'Suppressed';
const TYPE_TRANSIENT = 'Transient';
const TYPE_TRANS_GENERAL = 'General';
const TYPE_TRANS_BOXFULL = 'MailboxFull';
const TYPE_TRANS_TOOLARGE = 'MessageTooLarge';
const TYPE_TRANS_CONTREJECTED = 'ContentRejected';
const TYPE_TRANS_ATTACHREJECTED = 'AttachmentRejected';
const TYPE_UNDETERMINED = 'Undetermined';
...
现在,由于这些值将被写入数据库,因此使用字符串会大大增加我用来保存通知的空间,所以我使用了位掩码,但我从未使用过它们
我已经在 StackOverflow 上阅读了有关位掩码的内容,但我无法将我阅读的内容应用于这个具体场景。
如何使用位掩码来表示这些常量?有没有办法使用位掩码来“验证”通知的类型和子类型?