1

Tree Doctrine 拡張機能を使用してメニュー システムを作成しています。要求された親ノードに基づいてメニューを表示する Twig 拡張機能を作成したいと考えています{% display_menu(side_menu) %}。この関数は基本の twig テンプレートにあります (つまり、メニューは Web サイトのすべてのページにあります)。

Menu 構造を Doctrine で保存するので、Twig 拡張機能内の MenuRepository にアクセスする必要があると考えたので、最初に遭遇した問題は Entity Manager を取得することでした。解決策を探しているときに、これは悪い習慣だと言う人が 人かいます。これは、Twig 拡張機能がビューの一部であるため、理にかなっています。

私の問題に対する解決策(同様の質問にリンクされています)がありますが、私の質問は、良い実践を使用してそれを達成できる方法はありますか? それとも、そもそもそれを行うためのより良い方法はありますか?

4

1 に答える 1

2

エンティティ マネージャーを含むエンティティにサービスを認識させることは、悪い習慣です。EM を Twig エクステンションに注入することは何も悪いことではありません。ただし、モデル マネージャーを Twig 拡張機能に挿入して、拡張機能が永続レイヤーを認識しないようにしたいと思います。これはマネージャー レイヤーの仕事です。

したがって、MenuManagerリポジトリ/エンティティマネージャーを認識し、拡張機能に挿入する必要があります。

于 2013-02-26T15:30:06.970 に答える