2013-12-12 6 views
1

Я недавно обновил Symfony от 2,1 до 2,2, и теперь я получаю сообщение об ошибке:Ошибка «Класс„Twig_SimpleFunction“не найден» после обновления до Symfony 2,2

Ошибка: Class «Twig_SimpleFunction» не найден в поставщика/Symfony/Symfony/SRC/Symfony/Bundle/SecurityBundle/Twig/Extension/LogoutUrlExtension.php линия 41

Мой 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, поэтому я не понимаю, что делаю неправильно.

ответ

1

Нашел. Я подозревал, что проблема была в недопустимых зависимостях. Я скачал Symfony2.2.11 и изменил мою composer.json соответственно (обратите внимание, нет ссылок на веточку больше, и изменил некоторые 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" 
}, 

Это установлено веточка 1,15 и все работает. The manual page имеет ошибку - Twig_SimpleFunction появляется где-то между> 1.11 и < = 1.15, а не в 1.x.

+0

Вы можете принять этот ответ, чтобы этот вопрос отображался как решенный. – martias

0

Разнообразные классы расширения Twig не содержат имен. Вы проверили, что вы не изменили это?

В вас классе расширения вы должны использовать \Twig_SimpleFunction, а не только Twig_SimpleFunction

+0

Спасибо за ответ, но проблема в том, что Twig_SimpleFunction вообще не существует, хотя согласно руководству (ссылка, о которой я упоминал выше) он должен существовать. – JohnSmith