這篇文章主要為大家展示了“PHP中EasyTpl如何安裝使用”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“PHP中EasyTpl如何安裝使用”這篇文章吧。
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、月湖網(wǎng)絡(luò)推廣、微信小程序定制開(kāi)發(fā)、月湖網(wǎng)絡(luò)營(yíng)銷(xiāo)、月湖企業(yè)策劃、月湖品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供月湖建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com
簡(jiǎn)單、輕量且快速。
無(wú)學(xué)習(xí)成本
僅僅簡(jiǎn)單處理并轉(zhuǎn)換為原生PHP語(yǔ)法
兼容PHP原生語(yǔ)法使用
更加簡(jiǎn)單的輸出語(yǔ)法。 例如:{{= $var }}
{{ $var }}
{{ echo $var }}
支持所有控制語(yǔ)法。 例如 if,elseif,else;foreach;for;switch
支持鏈?zhǔn)皆L問(wèn)數(shù)組值。 例如:{{ $arr.0 }}
{{ $map.name }}
{{ $map.user.name }}
更加安全,默認(rèn)會(huì)自動(dòng)通過(guò) htmlspecialchars
將輸出結(jié)果進(jìn)行處理
除非設(shè)置了禁用或者手動(dòng)使用 raw
過(guò)濾器
支持使用PHP內(nèi)置函數(shù)作為過(guò)濾器。 例如:{{ $var | ucfirst }}
支持添加自定義過(guò)濾器
默認(rèn)內(nèi)置過(guò)濾器:upper
lower
nl
支持添加自定義指令,提供自定義功能
支持模板中添加注釋。 例如: {{# comments ... #}}
需要 PHP 8.0+
composer
composer require phppkg/easytpl
use PhpPkg\EasyTpl\EasyTemplate; $tplCode = <<<'CODE' My name is {{ $name | strtoupper }}, My develop tags: {{ foreach($tags as $tag) }} - {{ $tag }} {{ endforeach }} CODE; $t = new EasyTemplate(); $str = $t->renderString($tplCode, [ 'name' => 'inhere', 'tags' => ['php', 'go', 'java'], ]); echo $str;
渲染輸出:
My name is INHERE,My develop tags:- php- go- java
語(yǔ)法跟PHP原生模板一樣的,加入的特殊語(yǔ)法只是為了讓使用更加方便。
EasyTemplate
默認(rèn)開(kāi)啟輸出過(guò)濾,可用于渲染視圖模板
TextTemplate
則是關(guān)閉了輸出過(guò)濾,主要用于文本處理,代碼生成等
use PhpPkg\EasyTpl\EasyTemplate;$t = EasyTemplate::new([ 'tplDir' => 'path/to/templates', 'allowExt' => ['.php', '.tpl'],]);// do something ...
更多設(shè)置:
/** @var PhpPkg\EasyTpl\EasyTemplate $t */ $t->disableEchoFilter(); $t->addFilter($name, $filterFn); $t->addFilters([]); $t->addDirective($name, $handler);
下面的語(yǔ)句一樣,都可以用于打印輸出變量值
{{ $name }}{{= $name }}{{ echo $name }}
更多:
{{ $name ?: 'inhere' }}{{ $age > 20 ? '20+' : '<= 20' }}
默認(rèn)會(huì)自動(dòng)通過(guò)
htmlspecialchars
將輸出結(jié)果進(jìn)行處理,除非設(shè)置了禁用或者手動(dòng)使用raw
過(guò)濾器
設(shè)置禁用輸出過(guò)濾 $t->disableEchoFilter()
模板中禁用輸出過(guò)濾 {{ $name | raw }}
可以使用 .
來(lái)快速訪問(wèn)數(shù)組值。原來(lái)的寫(xiě)法也是可用的,簡(jiǎn)潔寫(xiě)法也會(huì)自動(dòng)轉(zhuǎn)換為原生寫(xiě)法。
$arr = [ 'val0', 'subKey' => 'val1',];
在模板中使用:
first value is: {{ $arr.0 }} // val0'subKey' value is: {{ $arr.subKey }} // val1
if
語(yǔ)句:
{{ if ($name !== '') }}hi, my name is {{ $name }}{{ endif }}
if else
語(yǔ)句:
hi, my name is {{ $name }}age is {{ $age }}, and{{ if ($age >= 20) }} age >= 20.{{ else }} age < 20.{{ endif }}
if...elseif...else
語(yǔ)句:
hi, my name is {{ $name }}age is {{ $age }}, and{{ if ($age >= 50) }} age >= 50.{{ elseif ($age >= 20) }} age >= 20.{{ else }} age < 20.{{ endif }}
foreach
:
tags:{{ foreach($tags as $tag) }}- {{ $tag }}{{ endforeach }}
with keys:
tags:{{ foreach($tags as $index => $tag) }}{{ $index }}. {{ $tag }}{{ endforeach }}
以 {{#
和 #}}
包裹的內(nèi)容將會(huì)當(dāng)做注釋忽略。
{{# comments ... #}}{{ $name }} // inhere
multi lines:
{{# this comments block #}}{{ $name }} // inhere
默認(rèn)內(nèi)置過(guò)濾器:
upper
- 等同于 strtoupper
lower
- 等同于 strtolower
nl
- 追加換行符 \n
您可以在任何模板中使用過(guò)濾器。
基本使用:
{{ 'inhere' | ucfirst }} // Inhere {{ 'inhere' | upper }} // INHERE
鏈?zhǔn)绞褂?/strong>:
{{ 'inhere' | ucfirst | substr:0,2 }} // In{{ '1999-12-31' | date:'Y/m/d' }} // 1999/12/31
傳遞非靜態(tài)值:
{{ $name | ucfirst | substr:0,1 }}{{ $user['name'] | ucfirst | substr:0,1 }}{{ $userObj->name | ucfirst | substr:0,1 }}{{ $userObj->getName() | ucfirst | substr:0,1 }}
將變量作為過(guò)濾器參數(shù)傳遞:
{{ $suffix = '¥';}}{{ '12.75' | add_suffix:$suffix }} // 12.75¥
use PhpPkg\EasyTpl\EasyTemplate;$tpl = EasyTemplate::new();// use php built function$tpl->addFilter('upper', 'strtoupper');// 一次添加多個(gè)$tpl->addFilters([ 'last3chars' => function (string $str): string { return substr($str, -3); },]);
在模板中使用:
{{ $name = 'inhere';}}{{ $name | upper }} // INHERE{{ $name | last3chars }} // ere{{ $name | last3chars | upper }} // ERE
您可以使用指令實(shí)現(xiàn)一些特殊的邏輯。
$tpl = EasyTemplate::new();$tpl->addDirective( 'include', function (string $body, string $name) { /** will call {@see EasyTemplate::include()} */ return '$this->' . $name . $body; });
在模板中使用:
{{ include('part/header.tpl', ['title' => 'My world']) }}
以上是“PHP中EasyTpl如何安裝使用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!