加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 在Symfony中激活StringLoader Twig扩展

发布时间:2020-12-13 17:45:58 所属栏目:PHP教程 来源:网络整理
导读:我试图在Symfony 2.3项目中激活 Twig StringLoader Extension,但是无法正确使用yaml语法. 这篇文章提到了一个帖子上的answer by Heyflynn处理完全相同的问题但提供了一个不起作用的解决方案(对我来说). 在我的app / config / config.yml中编写以下行只是给出
我试图在Symfony 2.3项目中激活 Twig StringLoader Extension,但是无法正确使用yaml语法.

这篇文章提到了一个帖子上的answer by Heyflynn处理完全相同的问题但提供了一个不起作用的解决方案(对我来说).

在我的app / config / config.yml中编写以下行只是给出了以下异常:

# app/config/config.yml
acme.twig.extension.loader:
class:        Twig_Extension_StringLoader
tags:
     - { name: 'twig.extension' }

给我这个:

FileLoaderLoadException: Cannot import resource “…/app/config/config.yml” from “…/app/config/config_dev.yml”. (There is no extension able to load the configuration for “acme.twig.extension.loader” (in …/app/config/config.yml). Looked for namespace “acme.twig.extension.loader”,found “framework”,“security”,“twig”,“monolog”,“swiftmailer”,“assetic”,“doctrine”,“sensio_framework_extra”,“apy_data_grid”,“project“,“acme_demo”,“web_profiler”,“sensio_distribution”)

(我已经想知道acme.twig.extension.loader中的acme外观并将其替换为项目包的名称,但这又给了我同样的例外.只是切断它也不起作用.)

请帮忙!

解决方法

Twig不是acme包的一部分,Twig是供应商包本身,因此错误是正确的. acme.twig.extension.loader没有这样的命名空间

固定代码是:

# services.yml
services:
    twig.extension.stringloader:
        class: Twig_Extension_StringLoader
        tags:
            - { name: twig.extension }

这可以添加到/app/config/config.yml以在每个包中使用,或者将它添加到您的包文件夹中,添加到/Resources/config/services.yml中,以便仅在某个包中使用.

然后在twig模板中使用它们:

{{ include(template_from_string(page.template)) }}

以上在Symfony v2.5中适用于我

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读