模板引擎翻譯 好用的php模板,非常好用的PHP模板引擎
日期:2023-03-11 12:39:36 / 人氣: 520 / 發(fā)布者:成都翻譯公司
什么是模板引擎php模板引擎由來已久,比如老大哥smarty。畢竟現(xiàn)在mvc已經(jīng)很成熟,很多框架都有自己的模板引擎。畢竟模板引擎只是編譯一次,把相應(yīng)的模板語法利用正則替換成php語句,然后存儲(chǔ)成php文件就完成任務(wù)了,后續(xù)的運(yùn)行其實(shí)是載入php文件。為什么要用模板引擎模板引擎比較看一下比較主流的模板引擎的使用我是內(nèi)容模板,但是我用parent標(biāo)簽,調(diào)用了布局文件中content的內(nèi)容什么是模板引擎
顧名思義,這是一個(gè)模板解析工具。他的誕生是為了解決mvc的問題,實(shí)現(xiàn)數(shù)據(jù)和顯示的分離。php模板引擎歷史悠久模板引擎翻譯,如老大哥smarty。很少有人用過。畢竟mvc現(xiàn)在已經(jīng)很成熟了,很多框架都有自己的模板引擎。例如,Symfony 的樹枝,Laravel 的刀片。
性能損失?
當(dāng)模板引擎開始出現(xiàn)時(shí),很多人質(zhì)疑并認(rèn)為存在性能問題。但實(shí)際上,這是沒有必要的。畢竟模板引擎只編譯一次,使用正規(guī)規(guī)則將相應(yīng)的模板語法替換為php語句,然后存儲(chǔ)為php文件就完成了任務(wù)。后面的操作其實(shí)就是加載php文件。出來的只是判斷是否有編譯好的文件。對于當(dāng)前的計(jì)算速度可以忽略。
為什么要使用模板引擎
1 去掉繁瑣的php標(biāo)簽模板引擎翻譯,從而提高代碼的可讀性
2 將數(shù)據(jù)處理與視圖顯示分開,視圖只負(fù)責(zé)顯示和基本邏輯判斷
3 良好的視圖拆分和組織結(jié)構(gòu)
模板引擎對比
除了目的之外,還有一個(gè)不能忽視的問題,是否易學(xué)。如果一個(gè)模板引擎需要幾個(gè)小時(shí)來學(xué)習(xí),這樣的學(xué)習(xí)成本太高了。作為一種工具,它應(yīng)該簡單易學(xué),其次是滿足需求和完善的功能。
看看更多主流模板引擎的使用
twig,我喜歡他的語法,通俗易懂
基本語法
{% for user in users %}
* {{ 用戶名 }}
{% 別的 %}
沒有找到用戶。
{% 結(jié)束為 %}
指定布局文件
{% 擴(kuò)展 "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,因?yàn)樗鼜?fù)雜,現(xiàn)在使用它的人更少。
我們總結(jié)如下,一個(gè)模板引擎應(yīng)該具備以下功能
1 數(shù)據(jù)塊block/section 這是一個(gè)非常強(qiáng)大的功能,可以靈活控制每個(gè)顯示塊
2 繼承機(jī)制parent使用父繼承來調(diào)用布局中的內(nèi)容塊
3 多文件組合include 使用include將多個(gè)模板組合在一起,實(shí)現(xiàn)多種不同場景下的代碼復(fù)用
4 靈活的變量函數(shù)和常量使用
5 優(yōu)雅的標(biāo)簽邏輯控制 可以充分利用ide軟件的代碼提示和自動(dòng)補(bǔ)全功能,無需安裝特殊插件
6 模板自動(dòng)監(jiān)控 模板更新時(shí),刷新頁面,模板引擎會(huì)自動(dòng)編譯顯示*新內(nèi)容
今天的主角
在具備了上面總結(jié)的所有功能的前提下,我們來看看今天的主角是如何解決易學(xué)易讀兩個(gè)問題的。
布局
默認(rèn)標(biāo)題
我是布局模板內(nèi)容
{{ $title }}
我是內(nèi)容模板,但是我使用父標(biāo)簽來調(diào)用布局文件的內(nèi)容
復(fù)制代碼
是不是特別清爽?定義不同的塊標(biāo)簽,靈活控制內(nèi)容和位置,內(nèi)容模板的內(nèi)容默認(rèn)會(huì)覆蓋布局文件的同一個(gè)塊塊。您還可以使用 parent 標(biāo)記來調(diào)用內(nèi)容模板中布局文件中的內(nèi)容。
使用html標(biāo)簽編寫代碼可以實(shí)現(xiàn)所有ide軟件中的代碼不完整。以上代碼實(shí)現(xiàn)了顯示塊的定義,內(nèi)容模板顯示塊覆蓋了布局模板,以及include的繼承和外部引入。
使用可變常數(shù)函數(shù)
當(dāng)然,除了模板的整體管理,模板中一定要有流程控制和變量輸出。
//多變的
{{ $title }}
// 功能
{{ 日期('Ym-d')}}
//常用常量與變量用法一致,需要用{{}}括起來
{{ CONST_VAR }}
//直接使用兩邊下劃線的常量
//會(huì)被翻譯成 <?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ù)制代碼
因?yàn)樵?/p>
{{ $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';// 布局文件在*后一個(gè)class目錄下,如果不適用,可以定義為空字符串或者false
// 渲染模板
$view->render('index',[
'title'=>'測試頁',
'內(nèi)容'=>'內(nèi)容',
'數(shù)組'=>[
1,2,3
]
]);
//清空緩存
//$view->clean();復(fù)制代碼
相關(guān)閱讀Relate
熱門文章 Recent
- 免疫預(yù)防接種證翻譯模板 聊城新冠病毒防控專家劉婷婷:即將開展12-14歲人群接種工作2023-03-11
- 各種活動(dòng)比賽榮譽(yù)證書翻譯模板 榮譽(yù)證書英文_榮譽(yù)證書英文模板2023-03-11
- 阿拉伯聯(lián)合酋長國駕照翻譯模板 阿布扎比將每天檢測數(shù)千份進(jìn)口PCR樣本2023-03-11
- 申請英國簽證戶口本翻譯模板2023-03-11
- 光大銀行流水單翻譯模板 銀行實(shí)習(xí)報(bào)告2023-03-11
- 南洋理工大學(xué)成績單翻譯模板-高考成績單翻譯認(rèn)證2023-03-11
- 感謝信父母英語范文加翻譯模板 高中英語作文感謝信范文及翻譯.docx 6頁2023-03-11
- 大學(xué)自我介紹英語模板翻譯 英文簡歷自我介紹怎么寫?2023-03-11
- 出生證翻譯模板下載 美國出生證縣州翻譯認(rèn)證2023-03-11
- 工商銀行存單翻譯模板 什么叫銀行大額存單?工商銀行大額存單樣本圖2023-03-11