


Detailed explanation of the functions and installation and use of PHP EasyTpl
EasyTpl - Simple and fast PHP template engine
Simple and fast PHP template engine.
Features
- Simple, lightweight and fast.
- No learning cost
- Just simple processing and conversion to native PHP syntax
- Compatible with PHP native syntax use
- Easier Output syntax. For example:
{{= $var }}
{{ $var }}
{{ echo $var }}
- Supports all control syntax . For example
if,elseif,else;foreach;for;switch
- supports chained access to array values. For example:
{{ $arr.0 }}
{{ $map.name }}
{{ $map.user.name }}
- More secure, the output results will be automatically processed by
htmlspecialchars
by default- Unless disabled or manually used
raw
filter
- Unless disabled or manually used
- Supports using PHP built-in functions as filters. For example:
{{ $var | ucfirst }}
- Support adding custom filters
- Default built-in filter:
upper
lower
nl
- Default built-in filter:
- Supports adding custom instructions and providing custom functions
- Supports adding comments to templates. For example:
{{# comments ... #}}
Installation
- Requires PHP 8.0
composer
composer require phppkg/easytpl
Quick Start
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;
Rendering Output:
My name is INHERE,My develop tags:- php- go- java
More usage instructions
The syntax is the same as the PHP native template. The special syntax is added just to make it more convenient to use.
EasyTemplate
Output filtering is turned on by default and can be used to render view templatesTextTemplate
Turns off output filtering and is mainly used for text Processing, code generation, etc.
Configuration settings
use PhpPkg\EasyTpl\EasyTemplate;$t = EasyTemplate::new([ 'tplDir' => 'path/to/templates', 'allowExt' => ['.php', '.tpl'],]);// do something ...
More settings:
/** @var PhpPkg\EasyTpl\EasyTemplate $t */ $t->disableEchoFilter(); $t->addFilter($name, $filterFn); $t->addFilters([]); $t->addDirective($name, $handler);
Output variable values
below The same statements can be used to print output variable values
{{ $name }}{{= $name }}{{ echo $name }}
More:
{{ $name ?: 'inhere' }}{{ $age > 20 ? '20+' : '<= 20' }}
By default, the output results will be automatically processed through
htmlspecialchars
, unless Set to disable or manually use theraw
filter
- Set to disable output filtering
$t->disableEchoFilter()
- Disable output filtering in the template
{{ $name | raw }}
##Quickly access array values
You can use . to quickly access array values. The original writing method is also available, and the concise writing method will be automatically converted to the native writing method.
$arr = [ 'val0', 'subKey' => 'val1',];
first value is: {{ $arr.0 }} // val0'subKey' value is: {{ $arr.subKey }} // val1
If statement block
if Statement:
{{ if ($name !== '') }}hi, my name is {{ $name }}{{ endif }}
if else Statement:
hi, my name is {{ $name }}age is {{ $age }}, and{{ if ($age >= 20) }} age >= 20.{{ else }} age < 20.{{ endif }}
if...elseif...else Statement:
hi, my name is {{ $name }}age is {{ $age }}, and{{ if ($age >= 50) }} age >= 50.{{ elseif ($age >= 20) }} age >= 20.{{ else }} age < 20.{{ endif }}
For/Foreach Statement block
foreach:
tags:{{ foreach($tags as $tag) }}- {{ $tag }}{{ endforeach }}
tags:{{ foreach($tags as $index => $tag) }}{{ $index }}. {{ $tag }}{{ endforeach }}
Add comments
to the template{{# and
#}} The contents of the package will be ignored as comments.
{{# comments ... #}}{{ $name }} // inhere
{{# this comments block #}}{{ $name }} // inhere
Use filter
Default built-in filter:- upper
- Equivalent to
strtoupper - lower
- Equivalent to
strtolower - nl
- Append newline
\n
Filter usage example
You can use filters in any template.Basic usage:
{{ 'inhere' | ucfirst }} // Inhere {{ 'inhere' | upper }} // INHERE
Chain usage:
{{ 'inhere' | ucfirst | substr:0,2 }} // In{{ '1999-12-31' | date:'Y/m/d' }} // 1999/12/31
Passing non-static values:
{{ $name | ucfirst | substr:0,1 }}{{ $user['name'] | ucfirst | substr:0,1 }}{{ $userObj->name | ucfirst | substr:0,1 }}{{ $userObj->getName() | ucfirst | substr:0,1 }}
Pass variables as filter parameters:
{{ $suffix = '¥';}}{{ '12.75' | add_suffix:$suffix }} // 12.75¥
Custom filtersuse 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);
},]);
Copy after login
Use in templates: 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
Custom instructions
You can use instructions to implement some special logic.$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
The above is the detailed content of Detailed explanation of the functions and installation and use of PHP EasyTpl. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

To work on file upload we are going to use the form helper. Here, is an example for file upload.

Validator can be created by adding the following two lines in the controller.

Logging in CakePHP is a very easy task. You just have to use one function. You can log errors, exceptions, user activities, action taken by users, for any background process like cronjob. Logging data in CakePHP is easy. The log() function is provide

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

CakePHP is an open source MVC framework. It makes developing, deploying and maintaining applications much easier. CakePHP has a number of libraries to reduce the overload of most common tasks.
