Smarty 多次调用Smarties display()方法而不是使用includes

Smarty 多次调用Smarties display()方法而不是使用includes,smarty,Smarty,哪种方法将我的站点的模板部分放在一起是最佳实践?我更喜欢第一种解决方案,但我不确定使用多个调用来显示()是否是一种好的做法。我正在寻找易于维护和速度 <?php $smarty->display('header.tpl'); $smarty->display('menu.tpl'); $smarty->display('article1.tpl'); $smarty->display('footer.tpl'); ?> 或者显示单个smarty模板,然后

哪种方法将我的站点的模板部分放在一起是最佳实践?我更喜欢第一种解决方案,但我不确定使用多个调用来显示()是否是一种好的做法。我正在寻找易于维护和速度

<?php
$smarty->display('header.tpl');
$smarty->display('menu.tpl');
$smarty->display('article1.tpl');
$smarty->display('footer.tpl');
?>

或者显示单个smarty模板,然后在模板内

{include file="header.tpl"}
<body id={$pageid}>
{include file="menu.tpl"}
{include file="header_inner.tpl"}

Content of page

{include file="footer.tpl"}
{include file=“header.tpl”}
{include file=“menu.tpl”}
{include file=“header_inner.tpl”}
页面内容
{include file=“footer.tpl”}
如果您正在使用Smarty3(您应该这样做),请查看并查看。它允许您像构建类一样定义模板-OOP风格

如果您不能(或不想)使用TI,我建议使用
{include}
方法。原因:

  • 减少PHP和模板之间的API
  • 以更简单的方式允许
  • 允许对HTTP 304进行基本的
    Not Modified
    处理
  • 可以通过(Smarty3)进行优化,以减少文件系统I/O
  • 通常可以(通过Smarty3)通过(仍然减少文件系统I/O)进行优化
  • 多个display()调用(只有)一个优点。您可以将数据分块推送到浏览器。因此,您可以在渲染之前刷新到浏览器中。这允许浏览器在收到整个文档之前获取(阻止)脚本和css等资源。(“文件加载的管道化”)

    至于可维护性,我使用TI和{include}方法。永远不要执行多个display()调用。如果发生了变化,我就不得不接触太多的脚本