Caractéristiques
{{= $var }}
{{ $var }}
{{ echo $var }}
if,elseif,else;foreach;for;switch
{{ $arr.0 }}
{{ $map.name }}
{{ $map.user.name }}
{{= $var }}
{{ $var }}
{{ echo $var }}
if,elseif,else;foreach;for;switch
{{ $arr.0 }}
{{ $map.name }}
{{ $map.user.name }}
htmlspecialchars
将输出结果进行处理raw
过滤器{{ $var | ucfirst }}
upper
lower
nl
{{# comments ... #}}
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
默认开启输出过滤,可用于渲染视图模板TextTemplate
则是关闭了输出过滤,主要用于文本处理,代码生成等use PhpPkg\EasyTpl\EasyTemplate;$t = EasyTemplate::new([ 'tplDir' => 'path/to/templates', 'allowExt' => ['.php', '.tpl'],]);// do something ...
更多设置:
/** @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' }}
默认会自动通过
htmlspecialchars
将输出结果进行处理,除非设置了禁用或者手动使用raw
过滤器
$t->disableEchoFilter()
{{ $name | raw }}
可以使用 .
来快速访问数组值。原来的写法也是可用的,简洁写法也会自动转换为原生写法。
$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 }}
以 {{#
和 #}}
包裹的内容将会当做注释忽略。
{{# comments ... #}}{{ $name }} // inhere
multi lines:
{{# this comments block #}}{{ $name }} // inhere
默认内置过滤器:
upper
- 等同于 strtoupper
lower
- 等同于 strtolower
nl
- 追加换行符 n
htmlspecialchars
par défautraw
est utilisé manuellement Prend en charge l'utilisation de PHP fonctions intégrées comme filtre. Par exemple : {{ $var | ucfirst }}
Prend en charge l'ajout de filtres personnalisésFiltre intégré par défaut : upper
lower
nl
Prend en charge l'ajout d'instructions personnalisées et la fourniture de fonctions personnalisées
Prend en charge l'ajout de commentaires aux modèles. Par exemple : {{# comments ... #}}
Installation
composer
{{ 'inhere' | ucfirst }} // Inhere {{ 'inhere' | upper }} // INHERE
{{ 'inhere' | ucfirst | substr:0,2 }} // In{{ '1999-12-31' | date:'Y/m/d' }} // 1999/12/31
Sortie de rendu
:🎜🎜Défini pour désactiver le filtrage de sortie🎜Plus d'instructions d'utilisation🎜🎜La syntaxe est la même que celle du modèle natif PHP, la syntaxe spéciale est ajoutée juste pour la rendre plus pratique à utiliser. 🎜🎜🎜{{ $name | ucfirst | substr:0,1 }}{{ $user['name'] | ucfirst | substr:0,1 }}{{ $userObj->name | ucfirst | substr:0,1 }}{{ $userObj->getName() | ucfirst | substr:0,1 }}Copier après la connexionEasyTemplate
active le filtrage de sortie par défaut et peut être utilisé pour afficher des modèles de vue 🎜🎜TextTemplate
désactive le filtrage de sortie et est principalement utilisé pour le traitement de texte, la génération de code, etc. 🎜🎜🎜 🎜🎜Paramètres de configuration🎜🎜Plus de paramètres :🎜{{ $suffix = '¥';}}{{ '12.75' | add_suffix:$suffix }} // 12.75¥Copier après la connexion🎜Valeur de la variable de sortie🎜🎜Les instructions suivantes peuvent être utilisées pour imprimer les valeurs des variables🎜use PhpPkg\EasyTpl\EasyTemplate;$tpl = EasyTemplate::new();// use php built function$tpl->addFilter('upper', 'strtoupper');// 一次添加多个$tpl->addFilters([ 'last3chars' => function (string $str): string { return substr($str, -3); },]);Copier après la connexion🎜Plus :🎜{{ $name = 'inhere';}}{{ $name | upper }} // INHERE{{ $name | last3chars }} // ere{{ $name | last3chars | upper }} // ERECopier après la connexion🎜🎜Par défaut,$tpl = EasyTemplate::new();$tpl->addDirective( 'include', function (string $body, string $name) { /** will call {@see EasyTemplate::include()} */ return '$this->' . $name . $body; });Copier après la connexionhtmlspecialchars sera automatiquement transmis
Les résultats de sortie seront traités à moins que le filtrebrut
ne soit désactivé ou utilisé manuellement 🎜
$t->disableEchoFilter( )< /code>🎜🎜Désactiver le filtrage de sortie dans les modèles <code>{{ $name | raw }}
🎜🎜🎜🎜🎜Accéder rapidement aux valeurs du tableau🎜🎜Vous pouvez utiliser .
pour accéder rapidement à la valeur des tableaux. La méthode d'écriture originale est également disponible et la méthode d'écriture concise sera automatiquement convertie en méthode d'écriture native. 🎜{{ include('part/header.tpl', ['title' => 'My world']) }}
if
: 🎜rrreee🎜if else
instruction : 🎜rrreee🎜if . .elseif...else
déclaration :🎜rrreee🎜🎜🎜For/Foreach bloc d'instructions🎜🎜foreach
:🎜rrreee🎜avec clés :🎜rrreee🎜🎜🎜Ajouter des commentaires au modèle🎜 🎜Le contenu entouré de {{#
et #}}
sera ignoré en tant que commentaires. 🎜rrreee🎜lignes multiples :🎜rrreee🎜🎜🎜Utiliser des filtres🎜🎜Filtres intégrés par défaut :🎜🎜🎜upper
- équivalent à strtoupper
🎜🎜lower - Équivalent à <code>strtolower
🎜🎜nl
- Ajouter le caractère de nouvelle ligne n
🎜🎜🎜🎜🎜Exemple d'utilisation de filtre🎜🎜Vous pouvez le trouver dans Utiliser des filtres dans n’importe quel modèle. "Utilisation de base" 🎜rr reee 🎜Utiliser dans modèles :🎜rrreee🎜🎜🎜Directives personnalisées🎜🎜Vous pouvez utiliser des directives pour implémenter une logique spéciale. 🎜rrreee🎜Utiliser dans le modèle : 🎜rrreee🎜🎜Github : github.com/phppkg/easytpl🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!