php – 标签与树枝扩展中的功能

我目前在twig中编写了一些扩展,但是我无法确定为什么某个扩展应该作为标记或函数实现.

Twig的documentation列出了以下2个结构及其作用:

> {{}}:用于打印表达式评估的结果;
> {%%}:用于执行语句.

我计划实现与symfony2的embedded controllers类似的东西.

为什么该功能实现为:

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

由于嵌入式控制器功能应返回所请求控制器的完全呈现模板,因此功能不是更合适吗?

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

最佳答案 我在同一个问题上受到了热烈的关注.由你来决定.

如果您使用{{}},则可以将过滤器应用于输出:{{render()| upper}}.如果您使用{%%},则您的扩展程序的输出将不会被“清理”(但您可以始终将{{}}与数组一起使用(‘is_safe’=>数组(‘all’)).

渲染是一个重要的结构.您可以在表达式中调用{{path()}}之类的函数:{{host~path()}}.

点赞