自定义模板引擎_3

许可数据和显示模板

1、许可数据:assign()方法

//定义一个变量保存许可内容数据
public $value=array();
/**
 * 向模板许可内容
 * 可以输入两个值:$tpl->assign("test","this is a test");
 * 或者一个值一个数组:$tpl->assign('userInfo',array('username'=>'king','email'=>'353748018@q.com'));
 * 或者一个数组
 * @param unknown $key
 * @param string $value
 */
public function assign($key,$value=NULL){
	if(is_array($key)){
		$this->value=$this->value+$key;
	}else{
		$this->value[$key]=$value;
	}
}

2、显示模板

public $file;//模板文件,不带路径和后缀名

private $compileTool;//保存编译器类实例
/**
 * 得到模板文件路径,包含文件名+后缀
 * @return string
 */
public function getPath(){
	return $this->arrayConfig['tamplateDir'].'/'.$this->file.$this->arrayConfig['suffix'];
}
	
/**
 * 显示模板内容
 * @param unknown $file
 */
public function display($file){
	$this->file=$file;
	//检测模板文件是否存在
	if(!(file_exists($this->getPath())&&is_file($this->getPath()))){
		exit('模板文件不存在');
	}
		
	//得到编译后文件路径
	$compileFile=$this->arrayConfig['compileDir'].'/'.md5($file).'.php';
		
	if(!(file_exists($compileFile)&&is_file($compileFile))){
		//文件不存在
		//检测目录是否存在
		if(!file_exists($this->arrayConfig['compileDir'])){
			//目录不存在,创建之
			//0777最大访问权限,true允许创建多级目录
			mkdir($this->arrayConfig['compileDir'],0777,true);
		}else{
			//定义一个编译器类Compile.class.php
			//调用编译方法compile()
			$this->compileTool->compile($this->getPath(), $compileFile);
		}
		require_once $compileFile;
	}else{
		//文件已存在,直接读取
		require_once $compileFile;
	}	
}

显示模板函数display()中调用了一个单独的编译器类Compile.class.php

//在构造函数里面包含Compile.class.php可以重复使用
require_once "libs/Compile.class.php";
//创建编译器类实例
$this->compileTool=new CompileClass();

然后在display()中调用编译器类的方法compile()


从数组中将变量导入到当前的符号表
extract($this->value,EXTR_OVERWRITE);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值