jho*_*ter 5 navigation menu symfony
我是Symphony2的Web开发新手(尽管对于Web开发来说绝对不是新手),而我正准备开始一个中等大小的项目,它将被捆绑在一起,因为每个应用程序的安装可能都有不同的设置可用的功能.
我想从可用的包中动态生成导航,例如,如果包"foo"处于活动状态,则应显示带有指向foo主控制器操作路径的菜单项.
通常,我对此的看法是在某个地方创建一个单例,然后我会在bundle的load()函数中填充,在渲染过程中,我会输出单例.
但是symfony2在这个部分提供了很大的灵活性,所以我目前正在评估是否有更好的方法.
服务可以成为一种方式吗?还是活动?或者依赖注入的东西,所以bundle在构造时获得NavigationConfigurationElement的实例?
任何关于此的输入或想法,或者可能是一些如何做到这一点的示例的链接,将不胜感激.
此致,Jens
我最好的方法就是使用依赖注入标签.您将不得不创建一个依赖注入扩展并提供一个"标记",各种包可以使用它来注册它们的菜单条目.
我不会在这里描述你的整个过程,因为互联网上有大量的资源.
但是要简要介绍一下该怎么做
这里有一些可能对您有帮助的资源:
http://symfony.com/doc/current/components/dependency_injection/tags.html http://miguel.ibero.me/es/post/2012-04-28/adding-tags-to-symfony.html
我目前正在为symfony实现一个使用DI标签的solr包.我有一个名为IndexManager的类,它管理来自不同bundle的各种solr索引.我使用DI标签,以便其他捆绑包可以注册他们想要在solr中编入索引的内容/实体.原理与菜单项相同.
请看这里:https://github.com/roomthirteen/Room13SolrBundle
重要的文件是:
添加编译器传递:https://github.com/roomthirteen/Room13SolrBundle/blob/master/Room13SolrBundle.php 编译器自行传递:https://github.com/roomthirteen/Room13SolrBundle/blob/master/DependencyInjection/Compiler/SolrCompilerPass .PHP
希望有所帮助.任何更多的任务?不要犹豫,问.
| 归档时间: |
|
| 查看次数: |
1216 次 |
| 最近记录: |