/** * 缓存管理 * @param name 存储的名称 * @param value 存储的value * @author Colin <*****@*****.**> */ function S($name, $value = null) { //实例化一个缓存句柄 $cache = \MyClass\libs\ObjFactory::CreateCache(); if ($name == 'null') { $cache->clearCache(); } else { if (!empty($name) && $value == 'null') { //移除缓存 $cache->removeCache($name); } else { if (!empty($name) && !empty($value)) { //生成缓存 $cache->outputFileName($name, $value); return $value; } else { if (!empty($name) && empty($value)) { //读取缓存 return $cache->readCache($name); } } } } }
/** * 构造方法初始化 * @author Colin <*****@*****.**> */ public function __construct() { $this->db = \MyClass\libs\ObjFactory::getIns(); $this->prefix = Config('DB_PREFIX'); }
/** * 载入layout方法 * @param file 文件名 * @author Colin <*****@*****.**> */ public function Layout($file) { list($controller, $method) = URL::getCurrentUrl(); $tplFile = $file; //判断是否写了目录名支持持一级 $_patten = '/(.*)\\/(.*)/'; if (preg_match($_patten, $file, $_match)) { $tplFile = Config('LAYOUT_DIR') . '/' . $_match[2]; } //设置路径 $dircname = Config('TPL_C_DIR') . ltrim(APP_NAME, './') . '/' . $controller . '/'; //判断模板文件是否存在 if (!file_exists($tplFile)) { throw new MyError($tplFile . '视图文件不存在!'); } $name = $this->getTemplateName($file); $name = str_replace('/', '_', $name); //生成编译文件 $parFile = $dircname . md5($name) . $name . '.php'; //判断编译文件是否存在 如果存在那么就直接调用编译文件 如果不存在 那么久重新编译生成 if (!file_exists($parFile) || filemtime($parFile) < filemtime($tplFile)) { //编译文件的修改时间<tpl模板文件的修改时间 //实例化解析类 $parser = ObjFactory::CreateTemplatesParse('tpl', $tplFile); //调用解析类里面的公共方法 $parser->comile($parFile); } //引入编译文件 include $parFile; }