Twig模板引擎

一、模板引擎
模板引擎(Web开发的模板引擎)是为了用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档,其本质就是根据一定的规则进行变量替换。模板引擎可以解耦前后端,提高开发效率。

Twig是一款灵活、快速、安全的PHP模板引擎,类似于其他的模板引擎, 如Smarty、Django、Jinja等。每种模板引擎的实现本质是相同的——就是变量替换。

二、Twig安装及使用
目前而言,安装应该都是composer工具安装。

composer require "twig/twig:~2.0"
require_once '/path/to/vendor/autoload.php';

$loader = new \Twig\Loader\ArrayLoader([
    'index' => 'Hello {{ name }}!',
]);
$twig = new \Twig\Environment($loader);
echo $twig->render('index', ['name' => 'Fabien']);

三、基本语法

# 输出变量
{{ foo }}

# 判断
{% if foo %}
	{{ foo }}
{% endif %}

# for (foo array)
{% for x in foo %}
	{{ x }}
{% endfor %}

# 格式化(foo array)
{{ foo | json_encode }}

# 运算
{{ foo ? true : false }}
{{ foo + 2 }}

# html 扩展
{% extends "base.html" %}

{% block title %}Index{% endblock %}
{% block head %}
    {{ parent() }}
    
{% endblock %}
{% block content %}
    

Index

Welcome to my awesome homepage.

{% endblock %}

更多用法请参考官方文档。

四、使用场景
1 目前流行的MVC模式框架的渲染模板
2 发送邮件的内容渲染模板

针对第二种使用场景,这里给出业务实际应用场景,现在有线上预警实时,在发送异常时要发送报告邮件,且邮件格式要使用表格,并具备一定的美观性,这时就可以在发送邮件时,使用twig处理一下,然后再把处理后的内容发送邮件即可,伪代码如下:

# 1 首先引入twig自动加载类,如果是composer安装则不需要
require_once(BASE_DIR . '/deploy/framework/Twig/Autoloader.php');

# 2 获取twig类,使用其render方法

register(true);
	    $twig = new \Twig_Environment(new \Twig_Loader_Filesystem(array(
	        '__main__' => app()->basePath() . '/views'
	    )));
	    return $twig;
	}   
}

# 3 代码中使用
$twig = Util::Twig(); 
$context = $twig->render('warning.html', array('foo' => $foo));

# 4 warning.html代码




	
	    
	    
	    
	    实时监控预警邮件
	
	
		{{ foo }}
	


欢迎一起交流学习!

参考文档
1 twig官方文档,https://twig.symfony.com/doc/2.x/
2 smarty 模板引擎 https://www.smarty.net/files/docs/manual-en-2.6.pdf

你可能感兴趣的:(PHP,后端开发,web技术,模板引擎)