バンドルの1つ(「ベース」バンドル)に、いくつかのオプションを含むナビゲーションリストを作成したいと思います。他のバンドルをそのリストに追加するにはどうすればよいですか?
1 に答える
もっと詳しい質問をしたいのですが、とにかくここに行きます。
まず、KnpBundlesで、メニュー機能をすでに提供しているバンドルを確認します。KnpMenuBundleのようなもの。いいね?いいでしょう、それを使ってください。
あなたの好みに合うものはありませんか?次に、自分でロールします。私はこのようなもので行きます:
NavListManager
基本バンドルにクラスを作成AbstractNavList
し、ナビゲーションリストにオプションを追加する他のすべてのバンドルによって拡張されるクラスを作成します。各バンドルは、を
NavList
拡張するクラスを提供する必要がありますAbstractNavList
。これらのクラスは、ナビゲーションリストオプションを提供する必要があります。基本バンドルでメソッドを編集して、を使用して各バンドルのクラス
DependencyInjection\<MyBundle>Extension::load()
を検索します。収集したすべてのクラスをに含めます。NavList
$container->getParameter('kernel.bundles')
NavListManager
次に、テンプレートのようなものを呼び出して
$navman->render()
、ナビゲーションリストを生成します。