smarty 模板继承 {extends}

0?wx_fmt=png

定义


继承是从面向对象编程而来的概念,模板继承可以让你定义一个或多个父模板,提供给子模板来进行扩展。 扩展继承意味着子模板可以覆盖部分或全部父模板的块区域。


特性


  • 继承结构可以是多层次的,所以你可以继承于一个文件,而这个文件又是继承于其他文件。

  • 在覆盖父模板的 {block} 块以外的地方,子模板不能定义任何内容,任何在{block}以外的内容都会被自动忽略。

  • 子模板继承使用{extends}标签, 该标签一定放要在子模板的第一行。

  • 模板继承在编译时将编译成单独的一个编译文件,对比效果相似的{include}包含模板功能,模板继承的性能更高。


代码


layout.html(父模板)


<html>

<head>

  <title>{block name=title}默认页面标题{/block}</title>

  {block name=head}{/block}

</head>

<body>

{block name=body}{/block}

</body>

</html>


myproject.html(父模板)


{extends file='layout.html'}

{block name=head}

  <link href="/css/mypage.css" rel="stylesheet" type="text/css"/>

  <script src="/js/mypage.js"></script>

{/block}


mypage.html (孙子模板)


{extends file='myproject.html'}

{block name=title}我的页面标题{/block}

{block name=head}

  <link href="/css/mypage.css" rel="stylesheet" type="text/css"/>

  <script src="/js/mypage.js"></script>

{/block}

{block name=body}我的HTML页面内容在这里{/block}


$smarty->display('mypage.html');


<html>

<head>

  <title>我的页面标题</title>

  <link href="/css/mypage.css" rel="stylesheet" type="text/css"/>

  <script src="/js/mypage.js"></script>

</head>

<body>

我的HTML页面内容在这里

</body>

</html>


温馨提示:{extends} 比 {include} 性能更高。




Thanks ~


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值