Thinkphp twig

参考链接:thinkphp的twig模板实现

使用composer安裝好Thinkphp 3.2.3

composer create-project topthink/thinkphp your-project-name

安裝完畢之後,在執行Twig的安裝命令

composer require twig/twig:~1.0

在ThinkLibraryThinkTemplateDriver下建立一個Twig.class.php文件

 1 <?php
 2 namespace ThinkTemplateDriver;
 3 /**
 4 * Twig模板引擎驱动
 5 */
 6 class Twig {
 7 
 8     /**
 9     * 渲染模板输出
10     * @access public
11     * @param string $templateFile 模板文件名
12     * @param array $parameters 模板变量
13     * @return void
14     */
15     public function fetch($templateFile, $parameters) {
16         //THEME_PATH 是Thinkphp中的模板目录
17         //CACHE_PATH 是Thinkphp中的缓存目录,无需修改
18         $loader = new Twig_Loader_Filesystem(array(THEME_PATH));
19         $twig = new Twig_Environment($loader, array(
20             'cache' => CACHE_PATH
21         ));
22         $templateFile = substr($templateFile,strlen(THEME_PATH));
23         //一行code的输出
24         //echo $twig->render($templateFile,$parameters);
25         //两行code的输出
26         $template = $twig->loadTemplate($templateFile);
27         echo $template->render($parameters);
28     }
29 }

配置./Application/CommonConfconfig.php

1 <?php
2 return array(
3     //'配置项'=>'配置值'
4     'TMPL_ENGINE_TYPE'=>'Twig',
5     'TMPL_L_DELIM' => '{{',// 模板引擎普通标签开始标记
6     'TMPL_R_DELIM' => '}}',// 模板引擎普通标签结束标记
7 );

使用案例

在index.php中添加一句

require './vendor/autoload.php';

就变成类似

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2014 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------

// 应用入口文件

// 检测PHP环境
if (version_compare(PHP_VERSION, '5.3.0', '<')) {
    die('require PHP > 5.3.0 !');
}

// 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false
define('APP_DEBUG', true);

// 定义应用目录
define('APP_PATH', './Application/');
//引入composer
require './vendor/autoload.php';
// 引入ThinkPHP入口文件
require './ThinkPHP/ThinkPHP.php';

// 亲^_^ 后面不需要任何代码了 就是如此简单

./Application/Home/Controller/IndexController.class.php

 1 <?php
 2 namespace HomeController;
 3 
 4 use ThinkController;
 5 
 6 class IndexController extends Controller
 7 {
 8     public function index()
 9     {    
10         $this->assign("foo",200);
11         $this->display("index");
12     }
13 }

./Application/Home/View/Index/index.html

1 <!Doctype html>
2 <html>
3 <head>
4     <meta charset='utf-8'>
5 </head>
6 <body>
7     {{ foo }}
8 </body>
9 </html>

TODO:

  1. 可以通过Twig显示Form
  2. Twig的cache的及时更新html的修改,目前需要手动删除缓存文件之后,才会显示修改之后的Html内容
原文地址:https://www.cnblogs.com/fsong/p/5144664.html