【问题标题】:Error "Class 'Twig_SimpleFunction' not found" after upgrade to Symfony 2.2升级到 Symfony 2.2 后出现错误“找不到类 'Twig_SimpleFunction'”
【发布时间】:2013-12-12 17:09:20
【问题描述】:

我最近将 Symfony 从 2.1 更新到 2.2,现在出现错误:

错误:在 vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Twig/Extension/LogoutUrlExtension.php 第 41 行中找不到类“Twig_SimpleFunction”

我的 composer.json:

...
"require": {
    "php": ">=5.4",
    "symfony/symfony": "2.2.*",
    "twig/twig": "1.11.x",
    "twig/extensions": "1.0.x-dev",
    "noetix/easy-csv": "dev-master",
    "symfony/assetic-bundle": "2.*",
    "symfony/swiftmailer-bundle": "2.*",
    "symfony/monolog-bundle": "2.*",
    "sensio/distribution-bundle": "2.*",
    "sensio/framework-extra-bundle": "2.*",
    "sensio/generator-bundle": "2.*",
    "jms/security-extra-bundle": "1.4.*",
    "jms/di-extra-bundle": "1.3.*",
    "jms/serializer": "0.12.*",
    "jms/serializer-bundle" : "0.12.*@dev",
    "jms/metadata" : "1.3.*",
    "friendsofsymfony/user-bundle": "patch-1-dev",
    "friendsofsymfony/jsrouting-bundle": "1.2.*",
    "propel/propel1": ">=1.6.7",
    "propel/propel-bundle": "1.2.x-dev",
    "willdurand/propel-typehintable-behavior": "dev-master",
    "pagerfanta/pagerfanta": "1.0.x-dev",
    "white-october/pagerfanta-bundle": "dev-master",
    "knplabs/knp-menu-bundle": "dev-master",
    "knplabs/knp-menu": "2.0.x-dev",
    "exercise/elastica-bundle": "dev-master",
    "gregwar/captcha-bundle": "dev-master",
    "nelmio/api-doc-bundle": "2.1.*",
    "fr3d/ldap-bundle": "2.0.*@dev",
    "conjecto/easyrdf-bundle": "dev-master"
},
...

Twig deprecated features page 说:“从 Twig 1.x 开始,使用 Twig_SimpleFunction”。我有 1.11,所以我不明白我做错了什么。

【问题讨论】:

    标签: php symfony twig symfony-2.2


    【解决方案1】:

    找到了。正如我所怀疑的那样,问题在于无效的依赖项。我下载了 Symfony2.2.11 并相应地更改了我的 composer.json(注意不再引用 twig,并更改了一些 symfony/* 和 sensio/* 依赖项):

    "require": {
        "php": ">=5.3.3",
        "symfony/symfony": "2.2.*",
        "twig/extensions": "1.0.*",
        "noetix/easy-csv": "dev-master",
        "symfony/assetic-bundle": "2.1.*",
        "symfony/swiftmailer-bundle": "2.2.*",
        "symfony/monolog-bundle": "2.2.*",
        "sensio/distribution-bundle": "2.2.*",
        "sensio/framework-extra-bundle": "2.2.*",
        "sensio/generator-bundle": "2.2.*",
        "jms/security-extra-bundle": "1.4.*",
        "jms/di-extra-bundle": "1.3.*",
        "jms/serializer": "0.12.*",
        "jms/serializer-bundle" : "0.12.*@dev",
        "jms/metadata" : "1.3.*",
        "friendsofsymfony/user-bundle": "patch-1-dev",
        "friendsofsymfony/jsrouting-bundle": "1.2.*",
        "propel/propel1": ">=1.6.7",
        "propel/propel-bundle": "1.2.x-dev",
        "willdurand/propel-typehintable-behavior": "dev-master",
        "pagerfanta/pagerfanta": "1.0.x-dev",
        "white-october/pagerfanta-bundle": "dev-master",
        "knplabs/knp-menu-bundle": "dev-master",
        "knplabs/knp-menu": "2.0.x-dev",
        "exercise/elastica-bundle": "dev-master",
        "gregwar/captcha-bundle": "dev-master",
        "nelmio/api-doc-bundle": "2.1.*",
        "fr3d/ldap-bundle": "2.0.*@dev",
        "conjecto/easyrdf-bundle": "dev-master"
    },
    

    这安装了 twig 1.15 并且一切正常。 The manual page 有错误 - Twig_SimpleFunction 出现在 >1.11 和

    【讨论】:

    • 您可以接受此答案以使此问题看起来已解决。
    【解决方案2】:

    Twig 扩展类没有命名空间。你检查过你没有改变吗?

    在你的扩展类中你应该使用\Twig_SimpleFunction,而不仅仅是Twig_SimpleFunction

    【讨论】:

    • 感谢您的回答,但问题是 Twig_SimpleFunction 根本不存在,尽管根据手册(我上面提到的链接)它应该存在。
    猜你喜欢
    • 1970-01-01
    • 2015-08-31
    • 2021-05-14
    • 2013-03-02
    • 2013-09-07
    • 2020-01-19
    • 2014-10-06
    • 1970-01-01
    • 2019-06-14
    相关资源
    最近更新 更多