【发布时间】:2012-02-16 18:15:22
【问题描述】:
任何人都知道在 symfony2 中处理导航菜单的一个很好的原则或捆绑包?
我已经尝试过 Knp 捆绑包,但它只是 setter 和 getter。我认为控制器将匹配我的主菜单的功能,操作将匹配子菜单,并且其他参数可以映射到子菜单。
我认为我可以让我的应用程序使我的主菜单中的每个条目都与 XController.php 相关,并且它下面的子菜单中的每个条目都将与同一控制器中的 xAction 相关。 Knp 相当灵活,但(据我所知)不支持这种映射。
无论操作或任何其他参数如何,当我们在相关控制器中时,主导航条目都应该是活动的。这就是问题所在。在 symfony 的配置中,您有 _controller: ABBundle:NameController:nameAction,从中提取控制器和操作名称非常繁重,并且在每个页面加载时都运行不是一个好主意。如果我匹配整个 _controller 字符串,那么我的主菜单条目将不会独立于操作而处于活动状态..
我还认为这种模式甚至可以生成面包屑,第一个链接将是主导航中活动链接的副本,第二个可能是子导航菜单的活动条目,其余的可以通过设置控制器根据逻辑。
有什么想法吗?
【问题讨论】:
-
不能真正帮助您解决主要问题,但我会说所有配置内容最终都被编译成相当有效的 php 代码。检查缓存下的文件以查看结果。所以不要担心大多数东西太重。
-
是的,我决定自己编写导航服务。我认为使用缓存真的会加快速度:)
-
是否可以查看该代码?我刚刚遇到了同样的问题来解决根据当前路由参数生成的菜单。
标签: php navigation symfony