模板引擎翻譯 好用的php模板,非常好用的PHP模板引擎
日期:2023-03-11 12:39:36 / 人氣: 524 / 發(fā)布者:成都翻譯公司
什么是模板引擎php模板引擎由來已久,比如老大哥smarty。畢竟現(xiàn)在mvc已經(jīng)很成熟,很多框架都有自己的模板引擎。畢竟模板引擎只是編譯一次,把相應(yīng)的模板語法利用正則替換成php語句,然后存儲成php文件就完成任務(wù)了,后續(xù)的運行其實是載入php文件。為什么要用模板引擎模板引擎比較看一下比較主流的模板引擎的使用我是內(nèi)容模板,但是我用parent標(biāo)簽,調(diào)用了布局文件中content的內(nèi)容什么是模板引擎
顧名思義,這是一個模板解析工具。他的誕生是為了解決mvc的問題,實現(xiàn)數(shù)據(jù)和顯示的分離。php模板引擎歷史悠久模板引擎翻譯,如老大哥smarty。很少有人用過。畢竟mvc現(xiàn)在已經(jīng)很成熟了,很多框架都有自己的模板引擎。例如,Symfony 的樹枝,Laravel 的刀片。
性能損失?
當(dāng)模板引擎開始出現(xiàn)時,很多人質(zhì)疑并認為存在性能問題。但實際上,這是沒有必要的。畢竟模板引擎只編譯一次,使用正規(guī)規(guī)則將相應(yīng)的模板語法替換為php語句,然后存儲為php文件就完成了任務(wù)。后面的操作其實就是加載php文件。出來的只是判斷是否有編譯好的文件。對于當(dāng)前的計算速度可以忽略。
為什么要使用模板引擎
1 去掉繁瑣的php標(biāo)簽模板引擎翻譯,從而提高代碼的可讀性
2 將數(shù)據(jù)處理與視圖顯示分開,視圖只負責(zé)顯示和基本邏輯判斷
3 良好的視圖拆分和組織結(jié)構(gòu)
模板引擎對比
除了目的之外,還有一個不能忽視的問題,是否易學(xué)。如果一個模板引擎需要幾個小時來學(xué)習(xí),這樣的學(xué)習(xí)成本太高了。作為一種工具,它應(yīng)該簡單易學(xué),其次是滿足需求和完善的功能。
看看更多主流模板引擎的使用
twig,我喜歡他的語法,通俗易懂
基本語法
{% for user in users %}
* {{ 用戶名 }}
{% 別的 %}
沒有找到用戶。
{% 結(jié)束為 %}
指定布局文件
{% 擴展 "layout.html" %}
定義顯示塊
{% 塊內(nèi)容 %}
頁面內(nèi)容...
{% endblock %}復(fù)制代碼
再看刀刃
應(yīng)用名稱-@yield('title')
@section('側(cè)邊欄')
這是大師的側(cè)邊欄。
@展示
@yield('內(nèi)容')
@extends('layouts.app')
@section('title','頁面標(biāo)題')
@section('側(cè)邊欄')
@父母
這將附加到主側(cè)邊欄。
@endsection
@section('內(nèi)容')
這是我的身體內(nèi)容。
@endsection復(fù)制代碼
從上面可以看出,blade 比 twig 復(fù)雜得多。如果不看說明書,是看不懂上面代碼的意思的。為什么不厭倦smarty,因為它更復(fù)雜,現(xiàn)在使用它的人更少。
我們總結(jié)如下,一個模板引擎應(yīng)該具備以下功能
1 數(shù)據(jù)塊block/section 這是一個非常強大的功能,可以靈活控制每個顯示塊
2 繼承機制parent使用父繼承來調(diào)用布局中的內(nèi)容塊
3 多文件組合include 使用include將多個模板組合在一起,實現(xiàn)多種不同場景下的代碼復(fù)用
4 靈活的變量函數(shù)和常量使用
5 優(yōu)雅的標(biāo)簽邏輯控制 可以充分利用ide軟件的代碼提示和自動補全功能,無需安裝特殊插件
6 模板自動監(jiān)控 模板更新時,刷新頁面,模板引擎會自動編譯顯示*新內(nèi)容
今天的主角
在具備了上面總結(jié)的所有功能的前提下,我們來看看今天的主角是如何解決易學(xué)易讀兩個問題的。
布局
默認標(biāo)題
我是布局模板內(nèi)容
{{ $title }}
我是內(nèi)容模板,但是我使用父標(biāo)簽來調(diào)用布局文件的內(nèi)容
復(fù)制代碼
是不是特別清爽?定義不同的塊標(biāo)簽,靈活控制內(nèi)容和位置,內(nèi)容模板的內(nèi)容默認會覆蓋布局文件的同一個塊塊。您還可以使用 parent 標(biāo)記來調(diào)用內(nèi)容模板中布局文件中的內(nèi)容。
使用html標(biāo)簽編寫代碼可以實現(xiàn)所有ide軟件中的代碼不完整。以上代碼實現(xiàn)了顯示塊的定義,內(nèi)容模板顯示塊覆蓋了布局模板,以及include的繼承和外部引入。
使用可變常數(shù)函數(shù)
當(dāng)然,除了模板的整體管理,模板中一定要有流程控制和變量輸出。
//多變的
{{ $title }}
// 功能
{{ 日期('Ym-d')}}
//常用常量與變量用法一致,需要用{{}}括起來
{{ CONST_VAR }}
//直接使用兩邊下劃線的常量
//會被翻譯成 <?php if(defined('__APP__')){echo __APP__;}else{echo'__APP__';} ?>
__應(yīng)用程序__
// 三目操作
{{ $a==0? 0: 1 }}
過程控制
如果判斷
1)>
大于 1
等于 1
小于 1
復(fù)制代碼
for循環(huán)
{{ $i }}
普通課程for循環(huán)復(fù)制代碼
因為在
{{ $item['title'] }}
相當(dāng)于 foreach($array as $item)
{{ $index }}=>{{ $item['title'] }}
相當(dāng)于 foreach($array as $index=>$item)
foreach對應(yīng)原來的php寫法但是換成了php標(biāo)簽形式
{{ $item['title'] }}
$item)>
{{ $index }}=>{{ $item['title'] }}
復(fù)制代碼
在php中初始化include "../Template.php";
$view = 新模板();
$view->templatePath ='./template/';// 模板路徑以/結(jié)尾
$view->compilePath ='./compile/';// 編譯后的文件存放路徑以/結(jié)尾
$view->layout ='layout';// 布局文件在*后一個class目錄下,如果不適用,可以定義為空字符串或者false
// 渲染模板
$view->render('index',[
'title'=>'測試頁',
'內(nèi)容'=>'內(nèi)容',
'數(shù)組'=>[
1,2,3
]
]);
//清空緩存
//$view->clean();復(fù)制代碼
相關(guān)閱讀Relate
熱門文章 Recent
- 英語八級考試證書翻譯模板 國內(nèi)有哪些值得考的英語證書?2023-03-11
- 房產(chǎn)證翻譯2023-03-11
- 高中畢業(yè)證翻譯件模板 畢業(yè)證復(fù)印件電子版怎么弄2023-03-11
- 比賽獲獎證書翻譯模板 申請留學(xué)提交中文獲獎證書翻譯_獎學(xué)金證書翻譯模板2023-03-11
- 答題模板翻譯 語文答題紙模板2023-03-11
- 英國留學(xué)簽證翻譯件模板 英國留學(xué)簽證辦理所需材料有哪些2023-03-11
- 幼兒園營業(yè)執(zhí)照翻譯模板下載 辦理幼兒園營業(yè)執(zhí)照大概需要多少錢?2023-03-11
- 推薦信英語作文模板加翻譯 考研英語作文2023-03-11
- 浙江大學(xué)畢業(yè)證翻譯模板 學(xué)歷證明怎么開 學(xué)歷證明模板2023-03-11
- 加拿大簽證材料房產(chǎn)證翻譯模板 手把手教你白本拿下加拿大旅游簽證(含兒童簽證)2023-03-11