Smarty 和 Twig 模板系统都支持 django 模板系统中的“模板继承”。这两个都是流行且得到很好支持的模板系统,但是,twig 的语法更接近 django,所以你可能会更舒服地使用它。
聪明的
要在 smarty 中执行此操作,您可以按照以下示例执行此操作,从Smarty Documentation on Inheritence复制
布局.tpl
<html>
<head>
<title>{block name=title}Default Page Title{/block}</title>
</head>
<body>
{block name=body}{/block}
</body>
</html>
我的页面.tpl
{extends file="layout.tpl"}
{block name=title}My Page Title{/block}
{block name=body}My HTML Page Body goes here{/block}
mypage.tpl 的输出
<html>
<head>
<title>My Page Title</title>
</head>
<body>
My HTML Page Body goes here
</body>
</html>
枝条
同样,对于使用此功能有很好的文档。在twig 文档中,该示例更复杂,以演示 twig 提供的一些更高级的功能,但出于比较目的,我编写了一些反映 twig 中 smarty 示例的内容。
布局.twig
<html>
<head>
<title>{% block title %}Default Page Title{% endblock %}</title>
</head>
<body>
{% block body %}{% endblock %}
</body>
</html>
我的页面.twig
{% extends layout.twig %}
{% block title %}My Page Title{% endblock %}
{% block body %}My HTML Page Body goes here{% endblock %}
结论
回想起来,这两个示例几乎相同,因此在两者之间进行选择是比较特征和完全不同的问题的问题。使用 PHP 模板框架,您可以像使用 django 一样实现模板继承。
延伸阅读