用Twig装饰模板而不是包含它

时间:2015-02-08 14:13:45

标签: php templates twig decorator

我正在为一项小型ORM工作,基于 Active Record 系统。因此,所有模型都扩展了生成的基本模型(例如:Foo将扩展BaseFoo,抽象BaseFoo类将由命令生成。

抽象模型生成基于Twig模板,包括其他模板的一些部分(属性,getter和setter,主要方法等)。

但是ORM必须处理一个行为系统。所以行为应该能够装饰主模板。但是使用Twig分层布局系统,我找不到通过在主模板中注入一些线来正确装饰我的模板的方法。我可以使用embed标记处理它,调用基本模板并覆盖blocks。但是当存在多个行为时,该想法会失败,因为embed标记会重写主模板,因此它会写入模型的两倍(class BaseFoo { code overrided by behavior1 } class BaseFoo { code overrided by behavior2 }

我考虑过创建一些新标签:replace "line" by "line"append "line" after "line"prepend "line" before "line"。但我想确保没有更好的方法来装饰Twig模板,例如,逐个生成所有行为的模板:第一个行为将覆盖主模板,下一个行为将覆盖以前的行为通过调用Twig函数template_from_string()生成模板。

您如何看待装饰Twig模板的可能性?

0 个答案:

没有答案