gpt4 book ai didi

menu - Symfony 2 - 从可用的包中生成菜单条目

转载 作者:行者123 更新时间:2023-12-04 18:48:05 25 4
gpt4 key购买 nike

我是使用 Symphony2 进行 Web 开发的新手(虽然绝对不是 Web 开发的新手),而且我即将开始一个中型项目,该项目将被拆分成捆绑包,因为应用程序的每次安装可能有不同的设置的可用功能。

我想从可用的捆绑包中动态生成我的导航,例如如果捆绑“foo”处于事件状态,则应该出现一个菜单条目,其中包含到 foo 主 Controller 操作的路由。

通常,我对此的看法是在某处创建一个单例,然后我将在包的 load() 函数期间填充它,在渲染期间,我将输出单例。

但是 symfony2 在这部分提供了很大的灵 active ,所以我目前正在评估是否有更好的方法。

服务可以成为一种方式吗?还是事件?或者具有依赖注入(inject)的东西,所以捆绑包在构造时获得了 NavigationConfigurationElement 的实例?

对此的任何输入或想法,或者可能是如何执行此操作的示例链接,将不胜感激。

最好的祝福,
延斯

最佳答案

我认为最好的方法是使用依赖注入(inject)标签。您将必须创建一个依赖注入(inject)扩展并提供一个“标签”,各种捆绑软件可以使用它来注册它们的菜单条目。

我不会在这里向您描述整个过程,因为互联网上有很多关于此的资源。

但是为了给你一个快速的大纲

  • 实现一个保存菜单项的服务(你所说的单例)
  • 通过实现编译器 channel 来处理标记,此编译器 channel 将查找所有使用导航类标记的服务并将它们注册到菜单服务
  • 创建一个 twig 函数,该函数将使用该服务检索菜单并呈现它
  • 编写使用标签并提供菜单项的包

  • 以下是一些可能对您有所帮助的资源:

    http://symfony.com/doc/current/components/dependency_injection/tags.html
    http://miguel.ibero.me/es/post/2012-04-28/adding-tags-to-symfony.html

    我目前正在为使用 DI 标签的 symfony 实现一个 solr 包。我有一个名为 IndexManager 的类,它管理来自不同捆绑包的各种 solr 索引。我使用 DI 标签,以便其他捆绑软件可以注册他们想要在 solr 中索引的内容/实体。原理与菜单项相同。

    见这里: https://github.com/roomthirteen/Room13SolrBundle

    重要的文件是:

    添加编译器 channel : https://github.com/roomthirteen/Room13SolrBundle/blob/master/Room13SolrBundle.php
    编译器通过自身: https://github.com/roomthirteen/Room13SolrBundle/blob/master/DependencyInjection/Compiler/SolrCompilerPass.php

    希望有帮助。还有更多的问题吗?不要犹豫,问。

    关于menu - Symfony 2 - 从可用的包中生成菜单条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10800954/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com