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文件
<?php
namespace Think\Template\Driver;
/**
* Twig模板引擎驱动
*/
class Twig { /**
* 渲染模板输出
* @access public
* @param string $templateFile 模板文件名
* @param array $parameters 模板变量
* @return void
*/
public function fetch($templateFile, $parameters) {
//THEME_PATH 是Thinkphp中的模板目录
//CACHE_PATH 是Thinkphp中的缓存目录,无需修改
$loader = new \Twig_Loader_Filesystem(array(THEME_PATH));
$twig = new \Twig_Environment($loader, array(
'cache' => CACHE_PATH
));
$templateFile = substr($templateFile,strlen(THEME_PATH));
//一行code的输出
//echo $twig->render($templateFile,$parameters);
//两行code的输出
$template = $twig->loadTemplate($templateFile);
echo $template->render($parameters);
}
}
配置./Application/Common\Conf\config.php
<?php
return array(
//'配置项'=>'配置值'
'TMPL_ENGINE_TYPE'=>'Twig',
'TMPL_L_DELIM' => '{{',// 模板引擎普通标签开始标记
'TMPL_R_DELIM' => '}}',// 模板引擎普通标签结束标记
);
使用案例
在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
<?php
namespace Home\Controller; use Think\Controller; class IndexController extends Controller
{
public function index()
{
$this->assign("foo",200);
$this->display("index");
}
}
./Application/Home/View/Index/index.html
<!Doctype html>
<html>
<head>
<meta charset='utf-8'>
</head>
<body>
{{ foo }}
</body>
</html>
TODO:
- 可以通过Twig显示Form
- Twig的cache的及时更新html的修改,目前需要手动删除缓存文件之后,才会显示修改之后的Html内容
Thinkphp twig的更多相关文章
- thinkphp 集成 twig模版引擎
下载地址:https://github.com/fucongcong/ThinkPHPLevel/archive/master.zip 控制器格式为: <?php namespace Home\ ...
- thinkphp 设计思想
thinkphp 运行机制: thinkphp首先设置一些常量.然后运行Think对象(系统环境),装载think的运行环境,包括:自动加载.异常处理.功能核心等.环境准备好后,运行App对象(应用程 ...
- thinkphp5.1 - twig模板-全局变量
thinkphp5.1 - twig模板-全局变量我们在定义 ccs 之类的静态文件的时候,经常会使用<link rel="stylesheet" href="__ ...
- 制作类似ThinkPHP框架中的PATHINFO模式功能
一.PATHINFO功能简述 搞PHP的都知道ThinkPHP是一个免费开源的轻量级PHP框架,虽说轻量但它的功能却很强大.这也是我接触学习的第一个框架.TP框架中的URL默认模式即是PathInfo ...
- 在 SAE 上部署 ThinkPHP 5.0 RC4
缘起 SAE 和其他的平台有些不同,不能在服务器上运行 Composer 来安装各种包,必须把源码都提交上去.一般的做法,可能是直接把源码的所有文件复制到目录中,添加到版本库.不过,这样就失去了与上游 ...
- ThinkPHP+Smarty模板中截取包含中英文混合的字符串乱码的解决方案
好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: ...
- ThinkPHP 模板substr的截取字符串函数
ThinkPHP 模板substr的截取字符串函数在Common/function.php加上以下代码 /** ** 截取中文字符串 **/ function msubstr($str, $start ...
- thinkphp数据的查询和截取
public function NewsList(){ $this->assign('title','news'); $p = I('page',1); $listRows = 6; $News ...
- [转]thinkphp 模板显示display和assign的用法
thinkphp 模板显示display和assign的用法 $this->assign('name',$value); //在 Action 类里面使用 assign 方法对模板变量赋值,无论 ...
随机推荐
- CenOS中下载RPM包
在实施部署时,往往服务器环境无外网或无法访问国外网址.这是可以在本机虚拟机的CentOS环境中下载RPM. 方法一:yum yum命令本身就可以用来下载一个RPM包,标准的yum命令提供了--down ...
- bzoj 1432 [ZJOI2009]Function(找规律)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1432 [思路] 找(cha)规(ti)律(jie) 分析戳这儿 click here ...
- POM详细配置
POM的全称是“ProjectObjectModel(项目对象模型)”. pom.xml详解 声明规范 <projectxmlns="http://maven.apache.org/P ...
- Adobe CS6系列PJ方法
PJ中国人都懂得... 今天舍友问我photoshop cs6的PJ方法,我想这个问题大家都会遇到把,我这就小介绍下啦,很简单的... 我这里用PSCS6来介绍,其它软件都是一样的.而且PJ文件都是一 ...
- IntelliJ远程调试教程
概述 对于分布式系统的调试不知道大家有什么好的方法.对于我来说,在知道远程调试这个方法之前就是在代码中打各种log,然后重新部署,上线,调试,这样比较费时.今天咱们来了解了解Java远程调试这个牛逼的 ...
- unigui下载文件
lblProduct.Caption := '<a href="files\1.t" target=new>要下载的文件名</a>';
- kvo原理概述
kvo概述 kvo,全称Key-Value Observing,它提供了一种方法,当对象某个属性发生改变时,允许监听该属性值变化的对象可以接受到通知,然后通过kvo的方法响应一些操作. kvo实现原理 ...
- js为select添加option
<select id="shi"> function loadInfo(){ var shengId=document.getElementById("she ...
- Javascript注意事项四【提高循环性能的策略】
for(var i = item.length;i--){ process(item[i]); } 1.通过倒叙循环 2.最小化属性查询 3.尽量不要使用函数迭代(forEach)
- (原创)vagrant up 异常报错,出现 There was an error while executing `VBoxManage` 的解决方法
最近在使用 vagrant homestead 时,不小心在虚拟机上使用了 exit 命令退出虚拟机,导致再使用 vagrant up 时出现以下错误: Bringing machine 'larav ...