2

現在、Symfony 2.3.4 で CMS を構築しています。この CMS の一部として、すべての twig テンプレートをデータベースに保存したいと考えています。それらをデータベースに保存してアクセスする方法を読みましたが、それは十分に簡単に思えますが、1 つの疑問が残ります。データベースに保存されているテンプレートを拡張できるはずですが、これを行う方法がわかりません。

どなたか経験者や知識のある方、よろしくお願いします。

乾杯!

4

2 に答える 2

1

symfony フォーラムTwig Recipes ページのガイドに従って、すべてのテンプレートをデータベースに保存し、自動的に機能を拡張することができました。ただし、isFresh と getCacheKey が値を返すことを確認してください。そうしないと、何らかの理由で無限再帰が発生します。

また、symfony フォーラムで提案されている chain_loader サービスを追加する代わりに、データベース ローダー サービスにタグを追加する必要があることにも注意してください。

vendor.bundle.twig_database_loader:
    class: Vendor\Bundle\Twig\TwigDatabaseLoader
    arguments: [ @doctrine.orm.entity_manager ]
    tags:
        - { name: twig.loader }

このコードは非常にうまく機能します。

于 2013-08-29T15:10:11.387 に答える
1

Twig_TokenParser_Extendsに飛び込んで、extendsタグが内部でどのように機能するかを理解することをお勧めします。

于 2013-08-29T11:40:01.540 に答える