<?php !defined('APP_DIR') ? die('acceess not defined') : '';
class tpl{
    private $_tpl;
    private $_data = array();
    
    /**
     * 初始化模板
     *
     * @param sting $tpl
     * @param array $data
     */
    public function __construct( $tpl, $data=array() ){
        //模板目录
        $tpl_dir = TPLS_DIR;
        $this->_tpl = "$tpl_dir/$tpl";
        $this->_data = $data;
    }
    
    /**
     * 设置模板变量
     *
     * @access public
     * @param string $key
     * @param mixed $value
     */
    public function __set( $key, $value ){
        $this->_data[$key] = $value;
    }
    
    /**
     * 输出模板
     * @access public
     *
     */
    public function __toString(){
        return $this->get_output();
    }
    
    /**
     * 输出模板的内容
     * @access public
     */
    public function output(){
        extract($this->_data);
        try {
            require_once($this->_tpl);
        }catch (Exception $ex){
            echo $this->_tpl;die();
        }
    }
    
    /**
     * 获得模板输出的内容
     *
     * @return string
     */
    public function get_output(){
        ob_start();
        extract($this->_data);
        require_once($this->_tpl);
        return ob_get_clean();
    }
    
    /**
     * 获取tpl代码
     *
     * @return string
     */
    public function get_tpl(){
        return $this->_tpl;
    }
    
    public function set_tpl($file){
        $this->_tpl = $file;
    }
}
?>