2015-07-27 2 views
1

У нас есть система CMS, созданная поверх symfony2, и я боролся с проблемой маршрутизации, когда вы хотели бы реализовать поведение, подобное каждой системе CMS, используя дружественный URL-адрес в качестве идентификатора объекта.Как реализовать динамические маршруты в Symfony2?

Предположим, у меня есть несколько связок, каждый из которых заботится о своих вещах и сущностях. Как я могу использовать свои собственные контроллеры с динамическим маршрутным параметром?

Например, у меня есть базовый контроллер слизня с маршрутом "/ {_ slug} /" с наименьшим приоритетом. Таким образом, он может найти объект по slug в репозиториях, о которых известно, но это решение не является гибким. А также это своего рода унизительные контроллеры, потому что теперь у вас есть только один главный контроллер, вместо того чтобы разложить логику каждому контроллеру каждого пучка.

Я нашел несколько идей подхода к этой проблеме.

  1. нагрузка маршруты из базы данных - немного хуже, производительность, не кэшируются маршруты
  2. Добавить динамический загрузчик маршрутов - слишком много коды, хуже контроль слизней
  3. пользовательского маршрутизатор, который будет использоваться, прежде чем основной Symfony CMF маршрутизатор - до сих пор я нашел немного информации об этом решении

Я нашел несколько темы, которая пытается покрыть эту проблему:

+0

Возможно, это решение для вас http://www.tomasvotruba.cz/blog/2016/02/25/modular-routing-in-symfony –

ответ

1

Если вы еще не сделали, я предлагаю взглянуть на «Dynamic Router» из RoutingBundle, включенных в проект Symfony CMF.

Поскольку проект CMF касается создания функциональных возможностей CMS поверх Symfony, я думаю, он может соответствовать вашим потребностям.

Смежные вопросы