搜索
系统检测到您的用户名不符合规范:

smarty 模板继承 {extends}

浏览:1773 发布日期:2016年07月11日 分类:系统代码
smarty 模板继承 {extends}


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

特性:
1. 继承结构可以是多层次的,所以你可以继承于一个文件,而这个文件又是继承于其他文件。
2. 在覆盖父模板的 {block} 块以外的地方,子模板不能定义任何内容,任何在{block}以外的内容都会被自动忽略。
3. 子模板继承使用{extends}标签, 该标签一定放要在子模板的第一行。
4. 模板继承在编译时将编译成单独的一个编译文件,对比效果相似的{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 ~

更新技术分享,请移步 PHP工程师订阅号。

收藏
NTASTE
积分:1425 等级:LV3
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /