Exemple #1
0
 /**
  * 从模板引擎处获得内容
  */
 public function fetch($templateFile = '', $content = '', $prefix = '')
 {
     if (empty($content)) {
         // 模板文件解析标签
         Tag::listen('view_template', $templateFile);
         // 模板文件不存在直接返回
         if (!is_file($templateFile)) {
             return null;
         }
     }
     // 页面缓存
     ob_start();
     ob_implicit_flush(0);
     // 使用PHP原生模板
     if ('php' == strtolower(Config::get('TMPL_ENGINE_TYPE'))) {
         // 模板阵列变量分解成为独立变量
         extract($this->tVar, EXTR_OVERWRITE);
         // 直接载入PHP模板
         empty($content) ? include $templateFile : eval('?>' . $content);
     } else {
         // 视图解析标签
         $params = array('var' => $this->tVar, 'file' => $templateFile, 'content' => $content, 'prefix' => $prefix);
         // 解析模板
         Tag::listen('view_parse', $params);
     }
     // 获取并清空缓存
     $content = ob_get_clean();
     // 内容过滤标签
     Tag::listen('view_filter', $content);
     // 返回内容
     return $content;
 }
Exemple #2
0
 /**
  * 应用程序初始化
  * @access public
  * @return void
  */
 public static function init()
 {
     // 设置系统时区
     date_default_timezone_set(Config::get('DEFAULT_TIMEZONE'));
     // 定义当前请求的系统常量
     define('NOW_TIME', $_SERVER['REQUEST_TIME']);
     define('REQUEST_METHOD', $_SERVER['REQUEST_METHOD']);
     define('IS_GET', REQUEST_METHOD == 'GET' ? true : false);
     define('IS_POST', REQUEST_METHOD == 'POST' ? true : false);
     define('IS_PUT', REQUEST_METHOD == 'PUT' ? true : false);
     define('IS_DELETE', REQUEST_METHOD == 'DELETE' ? true : false);
     define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' || !empty($_POST[Config::get('VAR_AJAX_SUBMIT')]) || !empty($_GET[Config::get('VAR_AJAX_SUBMIT')]) ? true : false);
     // URL调度结束标签
     Tag::listen('url_dispatch');
     // TODO: 删除页面压缩功能,改为使用Smarty进行页面压缩管理
     // 页面压缩输出支持
     // if(Config::get('OUTPUT_ENCODE')) {
     //     $zlib = ini_get('zlib.output_compression');
     //     if(empty($zlib)) {
     //         ob_start('ob_gzhandler');
     //     }
     // }
     // 系统变量安全过滤
     if (Config::get('VAR_FILTERS')) {
         $filters = explode(',', Config::get('VAR_FILTERS'));
         foreach ($filters as $filter) {
             // 全局参数过滤
             array_walk_recursive($_POST, $filter);
             array_walk_recursive($_GET, $filter);
         }
     }
     // 配置主题目录
     define('THEME_PATH', GROUP_PATH . 'Tpl/');
     // 缓存路径
     Config::set('CACHE_PATH', CACHE_PATH . GROUP_NAME . '/');
     // 动态配置 TMPL_EXCEPTION_FILE,改为绝对地址
     Config::set('TMPL_EXCEPTION_FILE', realpath(Config::get('TMPL_EXCEPTION_FILE')));
 }