Служба "fos_user.mailer" имеет зависимость от несуществующей службы "templating",

Итак, вышеприведенная ошибка внезапно началась, после того, как я использовал FOSUserBundle для нескольких проектов Symfony.

Я пробовал, включая службу шаблонов (дважды сейчас), и кажется, что он установлен нормально. Вот мой список требований в моем composer.json:

"require": {
    "php": ">=5.5.9",
    "doctrine/doctrine-bundle": "^1.6",
    "doctrine/orm": "^2.5",
    "friendsofsymfony/user-bundle": "^2.0",
    "incenteev/composer-parameter-handler": "^2.0",
    "sensio/distribution-bundle": "^5.0.19",
    "sensio/framework-extra-bundle": "^5.0.0",
    "symfony/monolog-bundle": "^3.1.0",
    "symfony/polyfill-apcu": "^1.0",
    "symfony/swiftmailer-bundle": "^2.6.4",
    "symfony/symfony": "3.4.*",
    "symfony/templating": "^3.4",
    "twig/twig": "^1.0||^2.0"
},

Я установил файлы config.yml, security.yml и routing.yml, как обычно, и включил пакет в файл AppKernel.php. Я также создал объект User.php, но каждый раз, когда я пытаюсь очистить кэш или обновлять базу данных, я получаю эту ошибку.

Служба "fos_user.mailer" имеет зависимость от несуществующего сервис "templating"

И после долгих поисков я не вижу, где исправить эту проблему. Любая помощь в этом очень ценится, поскольку это никогда не случалось раньше, и я всегда использовал FOSUserBundle для своих потребностей в безопасности.

Ответ 1

Я только что испытал ту же проблему. Самое смешное, что я создал проект Symfony 3.3 незадолго до создания проекта Symfony 3.4, и у проекта Symfony 3.3 такой проблемы не было. Таким образом, они должны были удалить шаблонный компонент для версии 3.4.

Чтобы решить вашу проблему, вам нужно будет установить шаблонизатор, используя composer:

composer require symfony/templating

Затем добавьте следующую конфигурацию под ключом framework в вашем config.yml:

templating:
    engines: ['twig']

Обновление: мне недавно пришлось запустить новый проект Symfony 3.4 с FOSUserBundle и обнаружил, что мне нужно было только добавить вышеуказанную конфигурацию в мой файл config.yml (как было упомянуто в комментарии ниже).

Ответ 2

В Symfony 3.4 и FosUserBundle 2.0 добавьте служебную почтовую программу в конфигурацию fos_user:

fos_user:
    db_driver: orm # other valid values are 'mongodb' and 'couchdb'
    firewall_name: main
    user_class: AppBundle\Entity\User
    service:                               # this lines
        mailer: fos_user.mailer.twig_swift # this lines
    from_email:
        address: "%mailer_user%"
        sender_name: "%mailer_user%

Ответ 3

В моем случае это работает после изменения в config.yml, как показано ниже:

# FOSUser Configuration
fos_user:
    db_driver: orm # other valid values are 'mongodb' and 'couchdb'
    firewall_name: main
    user_class: AppBundle\Entity\User
    service:                               # this line
        mailer: fos_user.mailer.twig_swift # this line (from the comment above)
    from_email:
        address: "[email protected]" # change this 
        sender_name: "Test App"  # and this