現在、独自の Symfony バンドルを作成しています (バージョン 3.3 を使用しています)。これまでのところ問題なく動作していますが、バンドル固有のサービス定義をapp/config/services.ymlバンドル内のサービス定義に移動したいと考えました。
を作成しsrc/MyBundle/Resources/config/services.yml、ガイドに従ってバンドル内にサービス構成をロードする方法に従ってロードしました。services.ymlそれは問題なく動作しますが、新しく作成されたパスは少し見にくいと思いました:
MyBundle\:
resource: '../../*'
exclude: '../../{Tests}'
@Bundleそのため、代わりに - 表記を使用すると、少しきれいに見えると思いました。
MyBundle\:
resource: '@MyBundle/*'
exclude: '@MyBundle/{Tests}'
ただし、エラーに直面していたよりも:
FileLocatorFileNotFoundException
ファイル "@MyBundle" は存在しません (: 内
<...>\MyBundle\DependencyInjection/../Resources/config)。ここで<...>、絶対パスに対応します。
また、それがバンドル名の命名の問題であるかどうかもテストしましたがapp/config/services.yml、たとえばに間違った名前のバンドル参照がある@SomeBundleThatDoesNotExistと、別のエラーが発生します。
FileLoaderLoadException
バンドル「SomeBundleThatDoesNotExist」が存在しないか、有効になっていません。
だから私の質問は: なぜ@Bundle-notationは では正常に機能するのに では機能しapp/config/services.ymlないのsrc/MyBundle/Resources/config/services.ymlですか?