ホームページ  >  記事  >  バックエンド開発  >  PHP EasyTplの機能とインストール・使い方を詳しく解説

PHP EasyTplの機能とインストール・使い方を詳しく解説

藏色散人
藏色散人転載
2021-11-17 14:08:463632ブラウズ

EasyTpl - シンプルで高速な PHP テンプレート エンジン

シンプルで高速な PHP テンプレート エンジン。

特徴

  • シンプル、軽量、高速。
    • 学習コストなし
    • 単純な処理とネイティブ PHP 構文への変換
    • PHP ネイティブ構文の使用と互換性がある
  • 出力が簡単構文。例: {{= $var }} {{ $var }} {{ echo $var }}
  • すべてのコントロールをサポートします構文 。たとえば、if,elseif,else;foreach;for;switch
  • は、配列値への連鎖アクセスをサポートします。例: {{ $arr.0 }} {{ $map.name }} {{ $map.user.name }}
  • より安全なため、出力結果はデフォルトで htmlspecialchars によって自動的に処理されます。
    • 無効にするか手動で使用しない限り、raw filter
  • #PHP 組み込み関数をフィルターとして使用することをサポートします。例:
  • {{ $var | ucfirst }}
  • カスタム フィルターの追加のサポート
    • デフォルトの組み込みフィルター:
    • upper lower nl
  • カスタム命令の追加とカスタム関数の提供をサポート
  • テンプレートへのコメントの追加をサポートします。例:
  • {{# コメント ... #}}

インストール

    PHP 8.0 が必要

composer

composer require phppkg/easytpl

クイック スタート
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;

レンダリング出力:

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+' : 'feb4f592bff34e932b55ac017dd2b6b8disableEchoFilter()<code></code># #テンプレートで出力フィルタリングを無効にする{{ $name | raw }}
  • ##配列値にすばやくアクセスする

    .

    を使用すると、配列値にすばやくアクセスできます。オリジナルの書き方も用意されており、簡潔な書き方はネイティブの書き方に自動変換されます。

    $arr = [
        'val0',
        'subKey' => 'val1',];
    テンプレートで使用:
    first value is: {{ $arr.0 }} // val0'subKey' value is: {{ $arr.subKey }} // val1

    If ステートメント ブロック

    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 103b504ed5b2d90cc18ffc3339a8f309= 50) }}
     age >= 50.{{ elseif ($age >= 20) }}
     age >= 20.{{ else }}
     age 36d8aac10b9880ecaa63448a79043c0b $tag) }}{{ $index }}. {{ $tag }}{{ endforeach }}

    コメント

    をテンプレートに追加 {{

    # および

    #}} パッケージの内容はコメントとして無視されます。

    {{# comments ... #}}{{ $name }} // inhere
    複数行:
    {{# this
     comments
     block
    #}}{{ $name }} // inhere

    フィルターを使用

    デフォルトの組み込みフィルター:

    upper
      -
    • strtoupper lower
    • と同等 -
    • strto lowernl
    • と同等 -改行を追加
    • \n
    フィルターの使用例

    フィルターはどのテンプレートでも使用できます。

    基本的な使用法

    :

    {{ 'inhere' | ucfirst }} // Inhere {{ 'inhere' | upper }} // INHERE
    チェーンの使用法:

    {{ 'inhere' | ucfirst | substr:0,2 }} // In{{ '1999-12-31' | date:'Y/m/d' }} // 1999/12/31
    非静的値の受け渡し:

    {{ $name | ucfirst | substr:0,1 }}{{ $user['name'] | ucfirst | substr:0,1 }}{{ $userObj->name | ucfirst | substr:0,1 }}{{ $userObj->getName() | ucfirst | substr:0,1 }}
    変数をフィルター パラメーターとして渡す:

    {{
        $suffix = '¥';}}{{ '12.75' | add_suffix:$suffix }} // 12.75¥
    カスタム フィルター

    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);
        },]);
    テンプレートで使用:
    {{
      $name = 'inhere';}}{{ $name | upper }} // INHERE{{ $name | last3chars }} // ere{{ $name | last3chars | upper }} // ERE

    カスタム命令

    命令を使用して、特別なロジックを実装できます。
    $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']) }}

    Github: github.com/phppkg/easytpl

    推奨調査: " PHPビデオチュートリアル"

    以上がPHP EasyTplの機能とインストール・使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。