У нас есть система CMS, созданная поверх symfony2, и я боролся с проблемой маршрутизации, когда вы хотели бы реализовать поведение, подобное каждой системе CMS, используя дружественный URL-адрес в качестве идентификатора объекта.Как реализовать динамические маршруты в Symfony2?
Предположим, у меня есть несколько связок, каждый из которых заботится о своих вещах и сущностях. Как я могу использовать свои собственные контроллеры с динамическим маршрутным параметром?
Например, у меня есть базовый контроллер слизня с маршрутом "/ {_ slug} /" с наименьшим приоритетом. Таким образом, он может найти объект по slug в репозиториях, о которых известно, но это решение не является гибким. А также это своего рода унизительные контроллеры, потому что теперь у вас есть только один главный контроллер, вместо того чтобы разложить логику каждому контроллеру каждого пучка.
Я нашел несколько идей подхода к этой проблеме.
- нагрузка маршруты из базы данных - немного хуже, производительность, не кэшируются маршруты
- Добавить динамический загрузчик маршрутов - слишком много коды, хуже контроль слизней
- пользовательского маршрутизатор, который будет использоваться, прежде чем основной Symfony CMF маршрутизатор - до сих пор я нашел немного информации об этом решении
Я нашел несколько темы, которая пытается покрыть эту проблему:
- More complex routing - Discussion about dnyamic routes
- How to add custom routes to Symfony 2 before container compilation?
Возможно, это решение для вас http://www.tomasvotruba.cz/blog/2016/02/25/modular-routing-in-symfony –