Thinkphp twig
参考链接:thinkphp的twig模板实现
使用composer安裝好Thinkphp 3.2.3
composer create-project topthink/thinkphp your-project-name
安裝完畢之後,在執行Twig的安裝命令
composer require twig/twig:~1.0
在Think\Library\Think\Template\Driver下建立一個Twig.class.php文件
1 <?php 2 namespace Think\Template\Driver; 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/Common\Conf\config.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 Home\Controller; 3 4 use Think\Controller; 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:
- 可以通过Twig显示Form
- Twig的cache的及时更新html的修改,目前需要手动删除缓存文件之后,才会显示修改之后的Html内容