Проблема
Как известно, в PHP нет встроенного типа перечислений, и в проектах со сложной предметной областью этот факт создает множество проблем. Когда в очередном Symfony-проекте появилась необходимость в перечислениях, было решено создать свою реализацию.
От перечислений требовалась гибкость и возможность использования в разных компонентах приложения. Задачи, которые должны были решать перечисления, следующие:
- иметь возможность получить список значений перечислениях
- интеграция с Doctrine для использования перечисления в качестве типа поля
- интеграция с Form для использования перечислений как поле в форме для выбора нужного элемента
- интеграция с Twig для перевода значений перечисления