我把phplib.template放在这样一个抽象类里
时间:2008-07-08
来源:互联网
为了方便,我把phplib.template放在这样一个抽象类里。不知道是把它复杂化了,还是真的没必要这样做。。。不过我个人还觉的感觉不错。。。请各位多多指教;
<?php
require_once(dirname(__FILE__)."/phplib.template.php");//模版类
define("INIT_TPL_PATH",dirname(__FILE__)."/../");//根目录
abstract class Loadtpl{
//别名
public $_name='first';
//.htm模版文件
public $_htm;
//模版对象
public $_tpl;
/*加载内容的*/
abstract function loadData($tpl);
/*创造模版
$htm 模版文件
$name 名称
*/
function createTpl($htm,$name=''){
/*调用模版类
INIT_TPL_PATH模版文件路尽。*/
$this->_tpl=new PhplibTpl(INIT_TPL_PATH);
/*如果别名为空就为默认的*/
$this->_name=empty($name)?$this->_name : $name;
$this->_htm=$htm;
$this->_tpl->set_file($this->_name,$this->_htm);
/*加载数据,子类必须实现这个抽象方法*/
$this->loadData($this->_tpl);
/*输出信息*/
$this->_tpl->parse("out_".$this->_name, $this->_name);
return $this->_tpl->get("out_".$this->_name);
}
}
?>
<?php
require_once("../lib/loadtpl.php");
/*例一*/
class TestTpl extends Loadtpl{
function display(){
return $this->createTpl('test/test.htm');
}
function loadData($tpl){
$tpl->set_var("ok","test");
}
}
$p=new TestTpl();
echo $p->display();
/*例二*/
class TestTpl2 extends Loadtpl{
function display(){
return $this->createTpl('test/test2.htm');
}
function loadData($tpl){
$TestTpl=new TestTpl();
$TestTpl->loadData($tpl);
}
}
$p=new TestTpl2();
echo $p->display();
?>
<?php
require_once(dirname(__FILE__)."/phplib.template.php");//模版类
define("INIT_TPL_PATH",dirname(__FILE__)."/../");//根目录
abstract class Loadtpl{
//别名
public $_name='first';
//.htm模版文件
public $_htm;
//模版对象
public $_tpl;
/*加载内容的*/
abstract function loadData($tpl);
/*创造模版
$htm 模版文件
$name 名称
*/
function createTpl($htm,$name=''){
/*调用模版类
INIT_TPL_PATH模版文件路尽。*/
$this->_tpl=new PhplibTpl(INIT_TPL_PATH);
/*如果别名为空就为默认的*/
$this->_name=empty($name)?$this->_name : $name;
$this->_htm=$htm;
$this->_tpl->set_file($this->_name,$this->_htm);
/*加载数据,子类必须实现这个抽象方法*/
$this->loadData($this->_tpl);
/*输出信息*/
$this->_tpl->parse("out_".$this->_name, $this->_name);
return $this->_tpl->get("out_".$this->_name);
}
}
?>
<?php
require_once("../lib/loadtpl.php");
/*例一*/
class TestTpl extends Loadtpl{
function display(){
return $this->createTpl('test/test.htm');
}
function loadData($tpl){
$tpl->set_var("ok","test");
}
}
$p=new TestTpl();
echo $p->display();
/*例二*/
class TestTpl2 extends Loadtpl{
function display(){
return $this->createTpl('test/test2.htm');
}
function loadData($tpl){
$TestTpl=new TestTpl();
$TestTpl->loadData($tpl);
}
}
$p=new TestTpl2();
echo $p->display();
?>
作者: hojust 发布时间: 2008-07-08

作者: luzhou 发布时间: 2008-07-10
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28