+ -
当前位置:首页 → 问答吧 → 我把phplib.template放在这样一个抽象类里

我把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();
?>

作者: hojust   发布时间: 2008-07-08

作者: luzhou   发布时间: 2008-07-10