gpt4 book ai didi

symfony - 检查是否定义了功能/扩展

转载 作者:行者123 更新时间:2023-12-04 20:14:35 27 4
gpt4 key购买 nike

在我的 Symfony2 包中,我需要检查是否定义了一个函数(一个扩展)。更具体地说,如果安装了 KnpMenuBundle,我会在我的包中使用那个,否则我将自己渲染插件。

我试过了,但这当然不起作用:

{% if knp_menu_render() is defined %}
{# do something #}
{% else %}
{# do something else #}
{% endif %}

是否有测试/函数/过滤器来检查函数是否已定义?如果没有,是否有其他方法可以检查应用程序中是否安装了 KnpMenuBundle?

最佳答案

Twig Extension 中编写一个函数这将检查是否启用了 bundle。

已注册捆绑包的列表存储在 kernel.bundles 中范围。

Twig 扩展被注册为服务。这意味着您可以将任何其他服务或参数传递给您的扩展:

<services>
<service id="acme.twig.acme_extension" class="Acme\DemoBundle\Twig\AcmeExtension">

<argument>%kernel.bundles%</argument>

<tag name="twig.extension" />
</service>
</services>

在您的 Twig 函数或过滤器中,您可以稍后使用传递给扩展的服务或参数。

关于symfony - 检查是否定义了功能/扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14004106/

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