2012-01-16 29 views
4

現在、twigでいくつかの拡張機能を書いていますが、特定の拡張機能をタグや関数として実装する必要があるのはなぜですか?タグvs twig拡張機能の機能

小枝のdocumentationは、次の2つの構造を示していますし、彼らは何をすべきか:

  • {{ }}:式の評価の結果を印刷するために使用されます。
  • {% %}:ステートメントの実行に使用されます。

私は、symfony2のembedded controllersに類似したものを実装する予定です。

なぜそれが機能は次のように実装されていることである:組み込みコントローラ機能するので

{% render "AcmeDemoBundle:Demo:fancy" with { 'name': name, 'color': 'green' } %} 

は、機能がより適切ではないであろう、要求されたコントローラ用に完全にレンダリングテンプレートを返す必要がありますか?

render("AcmeDemoBundle:Demo:fancy", { 'name': name, 'color': 'green' }); 

答えて

2

私は同じ質問でinteresetedでした。決定するのはあなた次第です。

{{ }}を使用すると、フィルターを出力に適用することができます:{{ render()|upper }}{% %}を使用すると、拡張機能の出力は「サニタイズ」されません(ただし、{{ }}はいつもarray('is_safe' => array('all')となります)。

renderは重要な構成です。これは、式{{ host ~ path() }}で呼び出すことができる{{ path() }}のような関数だけではありません。