0

私がやりたいことは非常に簡単ですが、まだ解決策が見つかりません。私のアプリケーションでは、テーマ、言語、スコープごとにすべてのテンプレートを整理したいと考えています。そのためには、適切なテンプレートの複数のパスを作成して検索する必要があります。

たとえば、Acme:Default:editAction が要求され、Acme:Default:edit.html.twig テンプレートがデフォルトで読み込まれます。

APP_PATH/src/Acme/DefaultBundle/Resources/views/Default/edit.html.twig

ここで、この動作を変更し、そのテンプレートの複数のパスを指定された順序で検索したいと考えています。

1. VIEWS_PATH/%theme%/%lang%/%scope%/Default/edit.html.twig
2. VIEWS_PATH/%theme%/%lang%/Default/edit.html.twig
3. VIEWS_PATH/%theme%/Default/edit.html.twig
4. VIEWS_PATH/Default/edit.html.twig

それを行う最も簡単な方法は何ですか?config またはイベント リスナーのある時点でパスを追加するか、TemplateLoaderClass をオーバーライドしますか?

バンドルへの推奨はありません。その時点で Symfony(2.1)/Twig がどのように機能するかを理解したいだけです。

4

1 に答える 1

0

テンプレート サービスを引数として受け取るイベント リスナーをバインドし、kernel.view イベントでテンプレート名を変更します。

このコード サンプルについては、https://stackoverflow.com/a/12403233/1649758を参照してください。

于 2013-04-01T21:15:39.177 に答える