Symfony2とTwigを使用して、ブロックのみを含むファイルを常に利用できるようにする方法はありますか?
たとえば、「cookie」という名前のブロックを、使用しているテンプレートに常に含めたり拡張したりすることなく、システム内の任意のテンプレートで常に使用できるようにしたい場合です。
何か案は?
明確化
次のような何かを実行できる汎用ブロックがあるとします。
{% block myBlock %}
ABC Examples
{% endblock %}
このブロックでレンダリングしたいことを知っているクラスがあります。私のテンプレート自体は必ずしもこれを知っているわけではありません。
{{ block(myObj.blockName) }}
それから私はそれを持っていたいので、私のコントローラー/サービス/など。テンプレートが実際にそれについて直接知る必要なしに、そのブロックを含むファイルを登録することができます(したがって、それぞれがいくつかの共通のインターフェースで動作するような複数のファイルを持つことができます)。
カスタムTwig関数をTwigExtensionに登録するのと似ています。私のテンプレートは、そこにあることを明示的に知る必要はありません。実行時に利用可能である必要があります。
それは理にかなっていますか?
もう少し明確にするために、私は基本的に、Symfony2でフォームをレンダリングするためのデフォルトのTwigブロックがあるのと同じようなことをしたいと思っています。何かを変更したいときだけ、毎回デフォルトのフォームファイルを含める必要はありません。