在 PHP Smarty 框架中,实现模板继承可以让你创建一个基本的骨架模板(通常称为布局模板),其中包含所有页面共享的元素,例如页眉、页脚和导航栏。然后,你可以通过扩展这个基本骨架模板来定义其他内容模板。当 Smarty 渲染页面时,它会自动将内容模板插入到骨架模板的相应位置。
以下是在 PHP Smarty 框架中实现模板继承的步骤:
- 创建基本骨架模板(layout.tpl):
{title} {include file="header.tpl"} {block name="content" /}
在这个例子中,{title}
是一个占位符,它将在子模板中替换。{block name="content" /}
是一个块,它表示子模板可以覆盖或插入到这个位置。
- 创建内容模板(例如:page1.tpl):
{extends file="layout.tpl"} {block name="content"}Welcome to Page 1
This is the content of page 1.
{/block}
在这个例子中,{extends file="layout.tpl"}
指令告诉 Smarty 这个模板继承自 layout.tpl
。{block name="content"}
和 {/block}
之间的内容是将被插入到布局模板的相应位置的。
- 创建另一个内容模板(例如:page2.tpl):
{extends file="layout.tpl"} {block name="content"}Welcome to Page 2
This is the content of page 2.
{/block}
这个模板与 page1.tpl
类似,但它将在布局模板的相同位置显示不同的内容。
- 在你的 PHP 代码中,使用
display()
方法渲染模板:
require_once 'Smarty.class.php'; $smarty = new Smarty(); // 设置模板目录和其他配置选项 $smarty->setTemplateDir('templates/'); $smarty->setConfigDir('configs/'); $smarty->setCacheDir('cache/'); // 渲染 page1.tpl $smarty->display('page1.tpl'); // 渲染 page2.tpl $smarty->display('page2.tpl');
这将分别渲染 page1.tpl
和 page2.tpl
,并将它们的内容插入到 layout.tpl
的相应位置。这样,你就可以轻松地为你的网站创建一个一致的布局,同时允许每个页面显示其独特的内容。