そのため、いくつかの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を常に使用しているため、これに関するヘルプは大歓迎です。
私はまったく同じ問題を経験しました。面白いことに、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ファイルに追加するだけでよいことがわかりました( 以下のコメント )で述べたように。
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%