欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

PHP最简单的模板引擎之一

程序员文章站 2024-01-26 18:46:10
...
自用模板引擎。

PHP代码

<?php
define('APP_PATH', __DIR__);
class Template{
    private static $_vars;
    private static $_path;
    private static $_prefix;
    private function __construct() {}
    public static function init($path = null) {
        if(isset($path)&&($path!=''))   self::$_path=APP_PATH.'/templates/'.$path.'/';
        else    self::$_path = APP_PATH.'/templates/';
        self::$_vars = array(); 
    }
    public static function set_path($path) {
        self::$_path = $path;
    }
    public static function set_prefix($prefix) {
        self::$_prefix = $prefix;
    }
    public static function assign($key, $value = null)
    {   if(!isset(self::$_vars))    self::init();
        if (is_array($key))     self::$_vars = array_merge(self::$_vars,$key);
        elseif (($key != '')&&(isset($value)))      
            self::$_vars[$key] = $value;
    }
    public static function fetch($file) {
         
        if(!isset(self::$_vars))    self::init();
        if(count(self::$_vars)>0)
        {   extract(self::$_vars,EXTR_PREFIX_ALL,self::$_prefix);
            self::$_vars = array(); 
        }
        ob_start();
        include self::$_path . $file ;
        $contents = ob_get_contents();
        ob_end_clean();
        self::$_path = null;
        return preg_replace('!\s+!', ' ', $contents);
    }
}
?>