配布可能なSymfonyバンドルについては、リソースファイルを参照することをparameters.yml
で許可します。Symfony 2.8:parameters.ymlにバンドルエイリアス
バンドルエイリアスの使用を許可します。 @FoobarSomethingBundle/Resources/foo/bar.png
は、Kernel::locateResource
を使用してsrc/Foobar/SomethingBundle/Resources/foo/bar.png
に解決されます。
しかし、明らかにリファレンスがエイリアスで始まり、ファイルシステムのパスではないことを示すために先頭の@
記号を使用することはできません。たとえば、次のように
### app/config/parameters.yml
some.value : "@FoobarSomethingBundle/Resources/foo/bar.png"
symfonyのサービスエイリアスとしてそれを解釈して、キャッシュをクリアすると失敗します:
[Symfony\Component\DependencyInjection\Exception\InvalidArgumentException]
You cannot dump a container with parameters that contain references to other services (reference to service "foobarsomethingbundle/resources/foo/bar.png" found in "/some.value").
そこで、私の質問:機能または上に少なくとも慣習があります設定ファイルでバンドルエイリアスを参照する方法、そしてそれらを即座に解決する方法もありますか?
パラメータを「文字通り」挿入する方法があります。サービスに引数として"%some.value%"
を渡すと、それを依存関係として解決しようとしませんでしたか?
のための二重の@記号を使用します。私は今のところそれを受け入れ、より良い方法があることを望んでいる。 ;) – lxg