web-dev-qa-db-fra.com

Le service "fos_user.mailer" a une dépendance sur un service non existant "templating"

Ainsi, l'erreur ci-dessus a soudainement commencé à se produire, après que j'utilise FOSUserBundle pour plusieurs projets Symfony.

J'ai essayé d'inclure le service de gabarit (deux fois maintenant) et il semble qu'il soit bien installé. Voici ma liste d'exigences dans mon 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"
},

J'ai configuré les fichiers config.yml, security.yml et routing.yml comme d'habitude et inclus l'ensemble dans le fichier AppKernel.php. J'ai également créé l'entité User.php, mais chaque fois que j'essaie d'effacer le cache ou de mettre à jour la base de données, j'obtiens cette erreur.

Le service "fos_user.mailer" a une dépendance sur un service non existant "templating"

Et après de longues recherches, je ne vois pas où régler ce problème. Toute aide à cet égard est très appréciée, car elle n’est jamais arrivée auparavant et j’ai toujours utilisé FOSUserBundle pour mes besoins de sécurité.

36
Michael Emerson

Je viens de rencontrer exactement le même problème. La chose amusante est que j'ai créé un projet Symfony 3.3 juste avant de créer un projet Symfony 3.4 et que le projet Symfony 3.3 n'avait pas ce problème. Ils doivent donc avoir supprimé le composant de création de modèles pour la version 3.4.

Pour résoudre votre problème, vous devrez installer le composant de gabarit à l’aide de composer:

composer require symfony/templating

Ajoutez ensuite la configuration suivante sous la clé framework dans votre config.yml:

templating:
    engines: ['twig']

Mise à jour: J'ai récemment dû démarrer un nouveau projet Symfony 3.4 avec FOSUserBundle et découvert que je n'avais qu'à ajouter la configuration ci-dessus à mon fichier config.yml ( comme cela a été mentionné dans n commentaire ci-dessous ).

67
Kodos Johnson

Dans Symfony 3.4 et FosUserBundle 2.0, ajoutez un mailing de service dans le fichier fos_user config:

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%
87
Moccine