Smarty 是什么?
为何使用 Smarty?
使用案例和工作流
语法比较
模板继承
最佳实践
速成课程
extends:
资源用于为模板继承定义子/父关系。有关详细信息,请参阅模板继承部分。
从 Smarty 3.1 开始,extends:
资源可以使用任何可用的模板资源,包括 string:
和 eval:
。在使用模板字符串时,请确保它们经过适当编码(url 或 base64)。如果在继承链中找到一个 eval:
资源,则其“不保存编译文件”属性会被 extends:
资源覆盖。但是,继承链中的模板不会单独编译。然而,只生成单个编译模板。
当需要以编程方式继承时,请使用此方法。在 PHP 中继承时,子模板中不会明显显示发生了哪种继承。如果您有选择,通常更灵活且直观的方法是从模板中处理继承链。
示例 16.9 从 PHP 脚本使用模板继承
<?php $smarty->display('extends:parent.tpl|child.tpl|grandchild.tpl'); // inheritance from multiple template sources $smarty->display('extends:db:parent.tpl|file:child.tpl|grandchild.tpl|eval:{block name="fooBazVar_"}hello world{/block}'); ?>