Twig:更改或别名内置标签名称?

时间:2014-11-06 07:30:04

标签: symfony twig

是否可以在Twig中轻松更改(或提供别名)内置标记名称?例如,我希望能够在我的模板中使用slot而不是block这个词(例如{% slot mypage %}{% endslot %}而不是{% block mypage %}{% endblock %})。

此页面:http://twig.sensiolabs.org/doc/recipes.html#customizing-the-syntax ...显示如何轻松更改标记标记({%%}),但我想更改实际标记 name < / em>的。这可能吗?

1 个答案:

答案 0 :(得分:1)

我没有对其进行测试,但您应该定义扩展Twig_TokenParser_Block的自定义tag并覆盖方法decideBlockEndgetTag

public function decideBlockEnd(Twig_Token $token)
{
    return $token->test('endslot');
}

public function getTag()
{
    return 'slot';
}

也许有必要使用自定义Twig_Node类型。

之后,您需要创建并注册twig extension