>  기사  >  백엔드 개발  >  Thinkphp의 템플릿 상속이란 무엇입니까? 템플릿 상속의 예

Thinkphp의 템플릿 상속이란 무엇입니까? 템플릿 상속의 예

不言
不言원래의
2018-07-24 17:49:101852검색

thinkPHP의 템플릿 상속은 클래스 상속과 같습니다. 템플릿은 기본 템플릿(또는 레이아웃)을 정의하고 그 안에 관련 블록을 정의한 다음 기본 템플릿에 정의된 블록을 확장할 수 있습니다.

따라서 템플릿 상속의 장점은 실제로 기본 템플릿에서 블록을 디자인하고 하위 템플릿에서 이러한 블록을 교체한다는 것입니다.

각 블록은 11606cc87d8fd89bcb19e3fd11c7bb4b36b196a5d42bcd29e331cb722979f9a6 태그로 구성됩니다. 다음은 웹 사이트 제목을 디자인하는 데 사용되는 기본 템플릿의 일반적인 블록 디자인입니다. 11606cc87d8fd89bcb19e3fd11c7bb4b36b196a5d42bcd29e331cb722979f9a6标签组成。 下面就是基础模板中的一个典型的区块设计(用于设计网站标题):

<block name="title"><title>网站标题</title></block>

block标签必须指定name属性来标识当前区块的名称,这个标识在当前模板中应该是唯一的,block标签中可以包含任何模板内容,包括其他标签和变量,例如:

<block name="title"><title>{$web_title}</title></block>

甚至还可以在区块中加载外部文件:

<block name="include"><include file="Public:header" /></block>

一个模板中可以定义任意多个名称标识不重复的区块,例如下面定义了一个base.html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<block name="title"><title>标题</title></block>
</head>
<body>
<block name="menu">菜单</block>
<block name="left">左边分栏</block>
<block name="main">主内容</block>
<block name="right">右边分栏</block>
<block name="footer">底部</block>
</body>
</html>

블록 태그는 현재 블록의 이름을 식별하기 위해 이름 속성을 지정해야 합니다. 이 식별자는 현재 템플릿인 블록에서 고유해야 합니다. 태그에는 다른 태그 및 변수를 포함한 모든 템플릿 콘텐츠가 포함될 수 있습니다. 예:

<extend name="base" />
<block name="title"><title>{$title}</title></block>
<block name="menu">
<a href="/" >首页</a>
<a href="/info/" >资讯</a>
<a href="/bbs/" >论坛</a>
</block>
<block name="left"></block>
<block name="content">
<volist name="list" id="vo">
<a href="/new/{$vo.id}">{$vo.title}</a><br/>
 {$vo.content}
</volist>
</block>
<block name="right">
 最新资讯:
<volist name="news" id="new">
<a href="/new/{$new.id}">{$new.title}</a><br/>
</volist>
</block>
<block name="footer">
 @ThinkPHP2012 版权所有
</block>

블록에 외부 파일을 로드할 수도 있습니다.

<extend name="Public:base" />

다음과 같이 템플릿에 중복되지 않는 이름을 가진 블록을 원하는 수만큼 정의할 수 있습니다. 다음은 base.html 기본 템플릿이 정의됩니다:

<extend name="./Template/Public/base.html" />

그런 다음 하위 템플릿(실제로는 현재 작업의 항목 템플릿)에서 상속을 사용합니다.

<block name="title"><title>{$title}</title></block>
<a href="/" >首页</a>
<a href="/info/" >资讯</a>
<a href="/bbs/" >论坛</a>

확장이 다음과 같은 것을 볼 수 있습니다. 하위 템플릿에 사용됨 태그는 상속되어야 하는 템플릿을 정의합니다. 확장 태그는 포함 태그와 동일한 방식으로 사용됩니다. 또한 다른 템플릿을 로드할 수도 있습니다:

rrreee

또는 절대 파일 경로를 사용하여

rrreee

현재 하위 템플릿에서는 블록만 정의할 수 있고 다른 템플릿 내용은 정의할 수 없습니다. 그렇지 않으면 직접 무시되며 기본 템플릿에 정의된 블록만 정의할 수 있습니다.

예를 들어 다음 정의가 사용되는 경우:

rrreee

탐색 섹션이 유효하지 않으며 템플릿에 표시되지 않습니다.

하위 템플릿에서는 기본 템플릿의 블록 정의를 오버로드할 수 있습니다. 재정의하지 않으면 기본 템플릿의 블록 정의가 사용된다는 의미입니다. 템플릿에서 이 블록의 내용이 삭제됩니다. 위의 예에서는 왼쪽 블록의 내용을 삭제하고 다른 블록을 다시 로드했습니다.

하위 템플릿의 블록 정의 순서는 임의적입니다. 템플릿 상속 사용의 핵심은 기본 템플릿이 어떻게 배치되고 디자인되는지에 있습니다. 원래 레이아웃 기능과 결합하면 더 유연해집니다.

관련 권장 사항: 🎜🎜🎜Geek Academy 심층 ThinkPHP 프레임워크 비디오 튜토리얼🎜🎜

위 내용은 Thinkphp의 템플릿 상속이란 무엇입니까? 템플릿 상속의 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.