Служба "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