ネイティブローダーを使用して標準のファイルシステムの場所にテンプレートをレンダリングする可能性を維持しながら、Symfony2アプリケーションのデータベースから特定のTwigテンプレートをロードしたいと思います。これを達成する方法は?
私が理解している限り、Twig環境に複数のローダーを登録する可能性はありません。私は(今のところ)2つの方法を考えてきました:
- デフォルトのローダーをカスタムプロキシクラスに置き換えます。テンプレートが標準の@Bundle-notationで参照される場合、プロキシはリクエストをデフォルトのローダーに渡します。それ以外の場合、リクエストはカスタム(データベース)ローダーに渡されます。また
- 完全に新しいTwig環境を構築します。この方法では、カスタムTwig拡張機能を両方の環境に登録する必要があり、異なるソース(@Bundlesからのもの、データベースからのもの)からのテンプレートを相互参照することはできません。
アップデート1:
Twigは、私の最初のオプションで使用できるTwig_Loader_Chainクラスをサポートしているようです。それでも、デフォルトのローダーにアクセスして、最初のオプションとしてチェーンに渡す必要があります。