Symfony2の環境に応じて異なるsecurity.yml
ファイルをインクルードする方法を見つけることができませんでした。たとえば、受入れテストのためにメモリ内のユーザープロバイダを用意したいと思っていました。実際にエンティティをテストする必要はありません。私の見解の受け入れテストを行いたいだけです。異なる環境のsecurity.ymlファイルが異なる
しかし、判明したように、それは簡単なことではありません。私がconfig.yml
に含むからsecurity.yml
を削除し、それをsecurity_prod.yml
に改名し、in_memory
ユーザプロバイダを持つsecurity_test.yml
を作成しました。それから私はそれぞれsecurity_prod.yml
とsecurity_test.yml
を私の生産とテスト設定に含めました。
しかし、まったく機能していないようです:security.yml
ファイル名は(symfonyのためにあまりにも奇妙なことと思われる)、そして、それはありませんでしたハードコードされたようですが、私に登場
$ SYMFONY_ENV=test app/console cache:clear
[Symfony\Component\Config\Definition\Exception\InvalidConfigurationException]
You are not allowed to define new elements for path "security.providers". Please define all elements for this path in one config file.
$ SYMFONY_ENV=prod app/console cache:clear
[Symfony\Component\Config\Definition\Exception\ForbiddenOverwriteException]
Configuration path "security.access_control" cannot be overwritten. You have to define all options for this path, and any of its sub-paths in one
configuration section.
。
質問:私はSymfonyで複数のsecurity.yml
を取得するにはどうすればよいですか?そして、この現象を引き起こす原因は何ですか?それを探している(と赤のコメントはない)されている人のための
あなたのconfig.ymlのconfig_prod.ymlとconfig_test.yml(または少なくとも一部を投稿することができます(基本的に著者はこの間違いをした)あなたは一度だけ
security_*.yml
が含まれていることを確認してくださいファイルはどこに含まれていますか?) –@CarlosGranados、あなたの懸念に感謝しますが、問題が私のオフィスチェアに座っていることが判明しました。私は私のsecurity.ymlsを2回含めていました:) – kix
これは私が疑ったことです。それがあなたにそれらのファイルを投稿するように依頼した理由です。 –