Я пишу Symfony Bundle для управления уведомлениями AWS SNS, отправленными AWS SES.
Я представляю объект 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, но я не могу применить к этому конкретному сценарию то, что я прочитал.
Как я могу использовать битовые маски для представления этих констант? Есть ли способ, используя битовые маски, также «проверять» тип и подтип уведомления?
Задача ещё не решена.
Других решений пока нет …