如何使模板引擎具有可配置性、并且可以得到配置信息
<?php
class MyTpl{
//定义一个数组保存模板引擎配置信息(参数)
private $arrayConfig=array(
'tamplateDir'=>"tamplates",//模板文件所在目录
'compileDir'=>"tamplates_c",//编译后文件所在目录
'suffix'=>".html"//编译后文件后缀名
);
//定义一个变量保存MyTpl的实例
private $_instance;
//构造函数
public function __construct($arrayConfig=array()){
if(is_array($arrayConfig)){
$this->arrayConfig=$this->arrayConfig+$arrayConfig;
}
}
/**
* 获取模板引擎配置信息方法
* 传入一个键名则返回对应的键值
* 无参数传入则返回所有配置信息
* @param string $key
* @return multitype:string
*/
public function getConfig($key=null){
if($key){
return $this->arrayConfig[$key];
}else{
return $this->arrayConfig;
}
}
/**
* 设置模板引擎方法
* 传入一个数组则合并到$arrayConfig数组
* 传入一个键名一个键值则将键名键值存进$arayConfig
* @param unknown $key
* @param string $value
*/
public function setConfig($key,$value=null){
if(is_array($key)){
$this->arrayConfig=$this->arrayConfig+$key;
}else{
$this->arrayConfig[$key]=$value;
}
}
/**
* 得到一个MtTpl()实例
* 如果$_instance不是MyTpl()的实例则创建并赋予$_instance
* @return MyTpl
*/
public function getInstance(){
if(!self::$_instance instanceof MyTpl){
self::$_instance=new MyTpl();
}
return self::$_instance;
}
}