Hap*_*per 1 plugins admin symfony
我想创建一个管理包,以某种方式检测其他包并尝试将它们添加到菜单和相同的RBAC上下文.
例如:
你会如何实现这样的事情?在symfony 2中是否有像这样的插件式设计的原生支持?
我不知道完整的插件解决方案,但我的方法是:
有一个"主后端"称它为MasterAdminBundle了对话.这个包包含一个base.html.twig,它只是帮助定义管理区域的导航栏和a {% block content %}.它还有一些MenuService显示菜单.我让我的其他bundle在这个服务中注册一个AdminMenu子类,通过使用Tag System就像Voter可以注册一样Security Context(参见这里).
在base.html.twig中,我可能会使用嵌入式控制器来渲染菜单.
现在有了这种框架,您的其他捆绑包可以通过保留自己的管理路由和接口来保持封装:
ProductController现在还ProductAdminController可以@Route("/admin")在类定义中使用路由前缀.然后,任何路由都可以从包中呈现模板,因为模板保存在控制器名称下.Acme\ProductBundle\Resources\views\ProductAdmin\edit_products.html.twig只要他们延长base.html.twig从MasterAdminBundle,并把自己的内容放到content块.
对于其他类似的东西你想将其它捆绑到我可能只是继续前进以同样的方式仪表板,请在服务MasterAdminBundle和使用标签其他类加载到它所需的数据.
希望这是有道理的,也许其他人会有更好的解决方案,我也有兴趣听到,因为这也是我现在正在努力解决的问题.
| 归档时间: |
|
| 查看次数: |
1858 次 |
| 最近记录: |