メソッド内からサービス (doctrine、twig など) にアクセスする方法を知りたいBundle->build(ContainerBuilder)
です。
基本的に、問題は、バンドルがメニュー項目をどこかにハードコードする必要なく、メニュー項目を追加できるメニュー システムが必要なことです。そのために、サービス ベースのメニューが適切に機能すると考えました (そのため、コントローラーでテスト目的で機能するメニュー ビルダー サービスを作成しました)。
私が知る限り、コントローラーは必要なときにのみ読み込まれるため、コントローラーでそれを行うことはできません。コントローラーが使用されているかどうかに関係なく、メニュー項目を追加する必要がある複数のバンドルがあるためです。実際、サイト ナビゲーションに使用されていない場合、メニュー項目はより重要になります。
おそらく Bundle->build メソッドと関係があると思いました。サービスを取得できるようにするContainerBuilder->get
必要があるようですが、その中には service_container サービスしかありません (getServiceIds で示されているように)。IContainerBuilder->get('service_container')->getServiceIds
の場合、サービスは service_container だけです。
私の考えでは、バンドルが「構築」されると、サービスはロードされません。
足りないものはありますか?オーバーライド可能なメソッド、リッスンするイベントはありますか?