Rumah > pembangunan bahagian belakang > tutorial php > Penjelasan terperinci tentang fungsi dan pemasangan serta penggunaan PHP EasyTpl

Penjelasan terperinci tentang fungsi dan pemasangan serta penggunaan PHP EasyTpl

藏色散人
Lepaskan: 2023-04-10 19:52:01
ke hadapan
3724 orang telah melayarinya

EasyTpl - Enjin templat PHP yang ringkas dan pantas

Enjin templat PHP yang ringkas dan pantas.

Ciri-ciri

  • Mudah, ringan dan pantas.
    • Tiada kos pembelajaran
    • Hanya pemprosesan mudah dan penukaran kepada sintaks PHP asli
    • Serasi dengan sintaks asli PHP
  • Sintaks Output yang lebih mudah . Contohnya: {{= $var }} {{ $var }} {{ echo $var }}
  • menyokong semua sintaks kawalan. Contohnya, if,elseif,else;foreach;for;switch
  • menyokong akses berantai kepada nilai tatasusunan. Contohnya: {{ $arr.0 }} {{ $map.name }} {{ $map.user.name }}
  • secara lalai, hasil output akan diproses secara automatik melalui htmlspecialchars
    • melainkan dilumpuhkan atau digunakan secara manual raw. penapis
  • Menyokong menggunakan fungsi terbina dalam PHP sebagai penapis. Contohnya: {{ $var | ucfirst }}
  • Sokongan menambah penapis tersuai
    • Penapis terbina dalam lalai: upper lower nl
  • Disokong Tambahkan arahan tersuai untuk menyediakan fungsi tersuai
  • Sokongan menambah ulasan pada templat. Contohnya: {{# comments ... #}}

Memasang

  • memerlukan PHP 8.0

komposer

composer require phppkg/easytpl
Salin selepas log masuk
Sintaks adalah sama dengan templat asli PHP Sintaks khas ditambah hanya untuk menjadikannya lebih mudah digunakan.

Penapisan output didayakan secara lalai dan boleh digunakan untuk memaparkan templat paparan
use PhpPkg\EasyTpl\EasyTemplate;

$tplCode = <<<&#39;CODE&#39;
My name is {{ $name | strtoupper }},
My develop tags:

{{ foreach($tags as $tag) }}
- {{ $tag }}

{{ endforeach }}
CODE;

$t = new EasyTemplate();

$str = $t->renderString($tplCode, [
    &#39;name&#39; => &#39;inhere&#39;,
    &#39;tags&#39; => [&#39;php&#39;, &#39;go&#39;, &#39;java&#39;],
]);

echo $str;
Salin selepas log masuk

Penapisan output dimatikan dan digunakan terutamanya untuk pemprosesan teks, penjanaan kod , dsb.

My name is INHERE,My develop tags:- php- go- java
Salin selepas log masuk

Tetapan konfigurasi

Lagi tetapan:

  • Nilai pembolehubah outputEasyTemplate
  • Pernyataan berikut adalah sama, boleh digunakan untuk mencetak nilai pembolehubah
  • TextTemplate
  • Lagi:

Secara lalai, hasil output akan diproses secara automatik melalui

, melainkan dilumpuhkan atau ditetapkan Lumpuhkan penapisan output secara manual menggunakan
use PhpPkg\EasyTpl\EasyTemplate;$t = EasyTemplate::new([
    &#39;tplDir&#39; => &#39;path/to/templates&#39;,
    &#39;allowExt&#39; => [&#39;.php&#39;, &#39;.tpl&#39;],]);// do something ...
Salin selepas log masuk
penapis

/** @var PhpPkg\EasyTpl\EasyTemplate $t */
$t->disableEchoFilter();
$t->addFilter($name, $filterFn);
$t->addFilters([]);
$t->addDirective($name, $handler);
Salin selepas log masuk

tetapan

Lumpuhkan penapisan output dalam templat
{{ $name }}{{= $name }}{{ echo $name }}
Salin selepas log masuk

{{ $name ?: &#39;inhere&#39; }}{{ $age > 20 ? &#39;20+&#39; : &#39;<= 20&#39; }}
Salin selepas log masuk

Akses nilai tatasusunan dengan cepathtmlspecialcharsrawAnda boleh menggunakan

untuk mengakses nilai tatasusunan dengan cepat. Kaedah penulisan asal juga tersedia, dan kaedah penulisan ringkas akan ditukar secara automatik kepada kaedah penulisan asli.
  • digunakan dalam templat: $t->disableEchoFilter()
  • {{ $name | raw }}
  • Jika blok pernyataan

pernyataan:

. Kenyataan:

$arr = [
    &#39;val0&#39;,
    &#39;subKey&#39; => &#39;val1&#39;,];
Salin selepas log masuk

Kenyataan:
first value is: {{ $arr.0 }} // val0&#39;subKey&#39; value is: {{ $arr.subKey }} // val1
Salin selepas log masuk

Untuk/Foreach blok pernyataan

if

:
{{ if ($name !== &#39;&#39;) }}hi, my name is {{ $name }}{{ endif }}
Salin selepas log masuk

if elsedengan kunci:

hi, my name is {{ $name }}age is {{ $age }}, and{{ if ($age >= 20) }}
 age >= 20.{{ else }}
 age < 20.{{ endif }}
Salin selepas log masuk

if...elseif...else

Tambahkan anotasi
hi, my name is {{ $name }}age is {{ $age }}, and{{ if ($age >= 50) }}
 age >= 50.{{ elseif ($age >= 20) }}
 age >= 20.{{ else }}
 age < 20.{{ endif }}
Salin selepas log masuk

pada templat untuk membungkus kandungan dengan Akan diabaikan sebagai ulasan.

berbilang baris:

foreach

tags:{{ foreach($tags as $tag) }}- {{ $tag }}{{ endforeach }}
Salin selepas log masuk

Gunakan penapis

tags:{{ foreach($tags as $index => $tag) }}{{ $index }}. {{ $tag }}{{ endforeach }}
Salin selepas log masuk
Penapis terbina dalam lalai:

- Bersamaan dengan

{{##}}

- Bersamaan dengan
{{# comments ... #}}{{ $name }} // inhere
Salin selepas log masuk

{{# this
 comments
 block
#}}{{ $name }} // inhere
Salin selepas log masuk
- Tambahkan aksara baris baharu

Contoh penggunaan penapis
  • Anda boleh menggunakan penapis dalam mana-mana templat. upperstrtoupper
  • Penggunaan asas
  • :lowerstrtolower
  • Penggunaan rantainl:n

Melalui nilai bukan statik :

Lepasi pembolehubah sebagai parameter penapis

:

{{ &#39;inhere&#39; | ucfirst }} // Inhere {{ &#39;inhere&#39; | upper }} // INHERE
Salin selepas log masuk

Penapis tersuai

Gunakan dalam templat:
{{ &#39;inhere&#39; | ucfirst | substr:0,2 }} // In{{ &#39;1999-12-31&#39; | date:&#39;Y/m/d&#39; }} // 1999/12/31
Salin selepas log masuk

Arahan tersuai
{{ $name | ucfirst | substr:0,1 }}{{ $user[&#39;name&#39;] | ucfirst | substr:0,1 }}{{ $userObj->name | ucfirst | substr:0,1 }}{{ $userObj->getName() | ucfirst | substr:0,1 }}
Salin selepas log masuk

Anda boleh menggunakan arahan untuk melaksanakan beberapa logik khas.

Gunakan dalam templat:
{{
    $suffix = &#39;¥&#39;;}}{{ &#39;12.75&#39; | add_suffix:$suffix }} // 12.75¥
Salin selepas log masuk

Github: github.com/phppkg/easytpl

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Penjelasan terperinci tentang fungsi dan pemasangan serta penggunaan PHP EasyTpl. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan