完整项目地址:https://github.com/Evai/Aier

Twig 模板引擎

模版引擎 twig 的模板就是普通的文本文件,也不需要特别的扩展名,.html .htm .twig 都可以。模板内的 变量 和 表达式 会在运行的时候被解析替换,标签(tags)会来控制模板的逻辑。
 

安装Twig

命令行运行:

composer require "twig/twig:~1.0"

在services目录下创建Twig.php:

<?php

/**
* Class Twig
*/
class Twig
{
public $view; public $data; public $twig; public $path = BASE_PATH . '/app/Views/'; /**
* Twig constructor.
* @param $view
* @param $data
*/
public function __construct($view, $data)
{
$loader = new Twig_Loader_Filesystem($this->path); $this->twig = new Twig_Environment($loader, array(
'cache' => BASE_PATH . '/cache/views/',
'debug' => true
)); $this->view = $view;
$this->data = $data; } /**
* @param $view
* @param array $data
* @return Twig
*/
public static function render($view, $data = array())
{ return new Twig($view, $data); } public function __destruct()
{
$this->twig->display($this->view, $this->data);
}
}

执行命令:

composer dump-autoload

在app/Views/ 下分别创建一个app.twig文件和index.twig 文件(.html文件也是可以的):

{#app.twig#}

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>app</title>
</head> <body> <header>header</header> {% block content %} {% endblock %} <footer>footer</footer> </body>
</html>
{#index.twig#}
{% extends 'app.twig' %}
{% block content %} hello {{ data.name }}, your mobile is {{ data.mobile }} {% endblock %}

在控制器中添加:

$data = ['data' => ['name' => 'evai', 'mobile' => 12345678910]];

return Twig::render('index.twig', $data);

刷新浏览器,可以看到显示如下页面:

详细文档请参考twig官网地址

最新文章

  1. Vue 过滤器与计算属性
  2. 第2章 如何构建布局良好的Windows程序
  3. mvn添加本地jar
  4. Android之Inflate()
  5. NOIP2010 关押罪犯 (并查集)
  6. tomcat服务器启动错误
  7. &quot;position:relative&quot;在IE中的Bug
  8. php json_decode 后,数字对象转换成了 科学计数法 的解决方案
  9. Ubuntu apache 禁止目录浏览
  10. The number of divisors(约数) about Humble Numbers
  11. 按键精灵http.定义getWeb
  12. HDU 5718 Oracle(高精度)
  13. 算法录 之 BFS和DFS
  14. 【Xilinx-Petalinux学习】-05-OpenCV程序测试
  15. ACE首页更改
  16. 使用OpenFiler来模拟存储配置RAC中ASM共享盘及多路径(multipath)的测试
  17. vue elementUI之Form表单 验证
  18. angular2 学习笔记 ( translate, i18n 翻译 )
  19. win10无法访问服务器上的共享文件夹怎么设置,提示:你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问
  20. BZOJ5047 空间传送装置 2017年9月月赛 最短路 SPFA

热门文章

  1. [转载]MVC中单用户登录
  2. 【Debug】— C++ 表达式必须包含类类型
  3. php面试题11(边看边复习刚刚讲的)(array_multisort($arr1,$arr2); 用$arr1来排序$arr2。)
  4. Android onKeyDown监听返回键无效
  5. c3p0 xml配置文件模版
  6. js中动态创建json,动态为json添加属性、属性值的实例
  7. 注册表 Run、RunOnce 浅析
  8. php中的foreach如何使用?
  9. vs 错误提示及解决方案
  10. 【BZOJ 1005】[HNOI2008]明明的烦恼(化简的另一种方法)