getEngine() public static method

获取渲染引擎
public static getEngine ( string $engine = null ) : Cml\View\Html
$engine string 视图引擎 内置html/json/xml/excel
return Cml\View\Html
Ejemplo n.º 1
0
 /**
  * 自定义异常处理
  *
  * @param mixed $e 异常对象
  */
 public function appException(&$e)
 {
     if (Cml::$debug) {
         $run = new Run();
         $run->pushHandler(Request::isCli() ? new PlainTextHandler() : new PrettyPageHandler());
         $run->handleException($e);
     } else {
         $error = [];
         $error['message'] = $e->getMessage();
         $trace = $e->getTrace();
         $error['files'][0] = $trace[0];
         if (substr($e->getFile(), -20) !== '\\Tools\\functions.php' || $e->getLine() !== 90) {
             array_unshift($error['files'], ['file' => $e->getFile(), 'line' => $e->getLine(), 'type' => 'throw']);
         }
         //正式环境 只显示‘系统错误’并将错误信息记录到日志
         Log::emergency($error['message'], [$error['files'][0]]);
         $error = [];
         $error['message'] = Lang::get('_CML_ERROR_');
         if (Request::isCli()) {
             \Cml\pd($error);
         } else {
             header('HTTP/1.1 500 Internal Server Error');
             View::getEngine('html')->reset()->assign('error', $error);
             Cml::showSystemTemplate(Config::get('html_exception'));
         }
     }
     exit;
 }
Ejemplo n.º 2
0
 /**
  * 自定义异常处理
  *
  * @param mixed $e 异常对象
  */
 public function appException(&$e)
 {
     $error = [];
     $exceptionClass = new \ReflectionClass($e);
     $error['exception'] = '\\' . $exceptionClass->name;
     $error['message'] = $e->getMessage();
     $trace = $e->getTrace();
     foreach ($trace as $key => $val) {
         $error['files'][$key] = $val;
     }
     if (substr($e->getFile(), -20) !== '\\Tools\\functions.php' || $e->getLine() !== 90) {
         array_unshift($error['files'], ['file' => $e->getFile(), 'line' => $e->getLine(), 'type' => 'throw']);
     }
     if (!Cml::$debug) {
         //正式环境 只显示‘系统错误’并将错误信息记录到日志
         Log::emergency($error['message'], [$error['files'][0]]);
         $error = [];
         $error['message'] = Lang::get('_CML_ERROR_');
     }
     if (Request::isCli()) {
         pd($error);
     } else {
         header('HTTP/1.1 500 Internal Server Error');
         View::getEngine('html')->reset()->assign('error', $error);
         Cml::showSystemTemplate(Config::get('html_exception'));
     }
 }
Ejemplo n.º 3
0
 /**
  * 渲染显示系统模板
  *
  * @param string $tpl 要渲染的模板文件
  */
 public static function showSystemTemplate($tpl)
 {
     $configSubFix = Config::get('html_template_suffix');
     Config::set('html_template_suffix', '');
     echo View::getEngine('html')->setHtmlEngineOptions('templateDir', dirname($tpl) . DIRECTORY_SEPARATOR)->fetch(basename($tpl), false, true, true);
     Config::set('html_template_suffix', $configSubFix);
 }
Ejemplo n.º 4
0
 /**
  * 输出调试消息
  *
  * @return void
  */
 public function stopAndShowDebugInfo()
 {
     if (Request::isAjax()) {
         if (Config::get('dump_use_php_console')) {
             self::$sql && \Cml\dumpUsePHPConsole(self::$sql, 'sql');
             \Cml\dumpUsePHPConsole(self::$tipInfo, 'tipInfo');
             \Cml\dumpUsePHPConsole(self::$includeFile, 'includeFile');
         } else {
             $deBugLogData = ['tipInfo' => self::$tipInfo];
             self::$sql && ($deBugLogData['sql'] = self::$sql);
             if (!empty($deBugLogData)) {
                 Cml::requireFile(CML_CORE_PATH . DIRECTORY_SEPARATOR . 'ConsoleLog.php', ['deBugLogData' => $deBugLogData]);
             }
         }
     } else {
         View::getEngine('html')->assign('includeLib', Debug::getIncludeLib())->assign('includeFile', Debug::getIncludeFiles())->assign('tipInfo', Debug::getTipInfo())->assign('sqls', Debug::getSqls())->assign('usetime', Debug::getUseTime())->assign('usememory', Debug::getUseMemory());
         Cml::showSystemTemplate(Config::get('debug_page'));
     }
 }