您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“PHP中EasyTpl如何安裝使用”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“PHP中EasyTpl如何安裝使用”這篇文章吧。
簡(jiǎn)單、輕量且快速。
無學(xué)習(xí)成本
僅僅簡(jiǎn)單處理并轉(zhuǎn)換為原生PHP語法
兼容PHP原生語法使用
更加簡(jiǎn)單的輸出語法。 例如:{{= $var }}
{{ $var }}
{{ echo $var }}
支持所有控制語法。 例如 if,elseif,else;foreach;for;switch
支持鏈?zhǔn)皆L問數(shù)組值。 例如:{{ $arr.0 }}
{{ $map.name }}
{{ $map.user.name }}
更加安全,默認(rèn)會(huì)自動(dòng)通過 htmlspecialchars
將輸出結(jié)果進(jìn)行處理
除非設(shè)置了禁用或者手動(dòng)使用 raw
過濾器
支持使用PHP內(nèi)置函數(shù)作為過濾器。 例如:{{ $var | ucfirst }}
支持添加自定義過濾器
默認(rèn)內(nèi)置過濾器: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
語法跟PHP原生模板一樣的,加入的特殊語法只是為了讓使用更加方便。
EasyTemplate
默認(rèn)開啟輸出過濾,可用于渲染視圖模板
TextTemplate
則是關(guān)閉了輸出過濾,主要用于文本處理,代碼生成等
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);
下面的語句一樣,都可以用于打印輸出變量值
{{ $name }}{{= $name }}{{ echo $name }}
更多:
{{ $name ?: 'inhere' }}{{ $age > 20 ? '20+' : '<= 20' }}
默認(rèn)會(huì)自動(dòng)通過
htmlspecialchars
將輸出結(jié)果進(jìn)行處理,除非設(shè)置了禁用或者手動(dòng)使用raw
過濾器
設(shè)置禁用輸出過濾 $t->disableEchoFilter()
模板中禁用輸出過濾 {{ $name | raw }}
可以使用 .
來快速訪問數(shù)組值。原來的寫法也是可用的,簡(jiǎn)潔寫法也會(huì)自動(dòng)轉(zhuǎn)換為原生寫法。
$arr = [ 'val0', 'subKey' => 'val1',];
在模板中使用:
first value is: {{ $arr.0 }} // val0'subKey' value is: {{ $arr.subKey }} // val1
if
語句:
{{ if ($name !== '') }}hi, my name is {{ $name }}{{ endif }}
if else
語句:
hi, my name is {{ $name }}age is {{ $age }}, and{{ if ($age >= 20) }} age >= 20.{{ else }} age < 20.{{ endif }}
if...elseif...else
語句:
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)置過濾器:
upper
- 等同于 strtoupper
lower
- 等同于 strtolower
nl
- 追加換行符 \n
您可以在任何模板中使用過濾器。
基本使用:
{{ '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 }}
將變量作為過濾器參數(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)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。