web-dev-qa-db-ja.com

サービス「fos_user.mailer」は、存在しないサービス「templating」に依存しています

そのため、いくつかのSymfonyプロジェクトでFOSUserBundleを使用した後、上記のエラーが突然発生し始めました。

テンプレートサービスを含めようとしましたが(今2回)、うまくインストールされているようです。 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を常に使用しているため、これに関するヘルプは大歓迎です。

36
Michael Emerson

私はまったく同じ問題を経験しました。面白いことに、Symfony 3.4プロジェクトを作成する直前にSymfony 3.3プロジェクトを作成しましたが、Symfony 3.3プロジェクトにはこの問題はありませんでした。そのため、3.4リリースのテンプレートコンポーネントを削除する必要があります。

問題を解決するには、composerを使用してテンプレートコンポーネントをインストールする必要があります。

composer require symfony/templating

次に、config.ymlのframeworkキーの下に次の設定を追加します。

templating:
    engines: ['twig']

更新:最近、FOSUserBundleで新しいSymfony 3.4プロジェクトを開始しなければならず、上記の設定をconfig.ymlファイルに追加するだけでよいことがわかりました( 以下のコメント )で述べたように。

67
Kodos Johnson

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