如何在Symfony2中实现动态路由?

时间:2015-07-27 08:03:25

标签: php symfony routing

我们在symfony2之上构建了一个CMS系统,当你想使用友好的URL slug作为实体的标识符实现类似于每个CMS系统的行为时,我一直在努力解决路由问题。

假设我有多个捆绑包,每个捆绑包都会处理他们的东西和实体。如何使用自己的控制器和动态路径param slug?

例如,我有一个基本的slug控制器,其路由“/ {_ slug} /”具有最低优先级。所以它可以通过知道存储库中的slug找到实体,但是这个解决方案并不灵活。还有一种降级控制器,因为现在你只有一个主控制器,而不是为每个控制器的每个控制器提供逻辑。

我找到了解决这个问题的几种方法。

  1. 从数据库加载路由 - 性能稍差,没有缓存路由
  2. 添加路由的动态加载程序 - 代码太多,阻塞程度更差
  3. 自定义路由器,将在symfony核心CMF路由器之前使用 - 到目前为止,我已经找到了关于此解决方案的一些信息
  4. 我找到了几个主题,试图解决这个问题:

1 个答案:

答案 0 :(得分:1)

如果您还没有,我建议您查看Symfony CMF项目中包含的RoutingBundle中的“Dynamic Router”。

由于CMF项目是关于在Symfony之上构建CMS功能,我认为它可能符合您的需求。