symfony にはそのような機能はありませんが、自分で作成することはできます。それらはそれを行ういくつかの方法です。
バックエンド作業 (つまり、DB からデータを取得する、API を呼び出すなど) を実行できるウィジェットについて話していることを認めます。
1 - スケーラブルな方法
Twig で render タグを使用すると、テンプレートからコントローラー アクションを呼び出すことができます。Varnish で esi タグを使用できるため、スケーラブルです(独自のキャッシュ プロファイルを実装することもできます)。おまけとして、プロファイラーは特定のレンダー コールに関する詳細をタイムラインに表示します (リクエスト全体のサブセットのように見えます)。
2 - テンプレートを含める
含まれているテンプレートは、Twig 関数呼び出しを通じてデータを収集します。経験上、最初のソリューションよりも少し高速ですが、簡単に拡張することはできません。
3 - カスタム TwigExtension を介してレンダリングする
twig 関数はデータを取得しrenderView
、サービスのメソッドを呼び出しtemplate
ます。これを行う予定がある場合は、おそらく最初の方法を使用することをお勧めします。
結論
多くのトラフィック (または「ヒット」) を取得するモジュール/ウィジェットを備えた大規模な Web サイトがある場合: 最初のソリューションを使用します。
キャッシュをサポートしていない小規模な Web サイトの場合: 2 番目の解決策を使用してください。モジュール/ウィジェットが非常に軽い場合は、このソリューションを使用します。
3 番目の解決策を検討している場合は、最初の解決策を使用することをお勧めします。
個人的には、常に最初のソリューションを使用して、何らかの方法でパフォーマンスを向上させようとします。Twig のレンダリング呼び出しは、Symfony2 の最後のバージョンから大幅に改善されました。
うまくいけば、私の答えはあなたにいくつかのガイドラインを提供します。