Example #1
0
 public static function display($model)
 {
     if (null === $model || false === $model) {
         return $model;
     }
     if (is_array($model) && !empty($model['_view_mode'])) {
         $viewMode = $model['_view_mode'];
         unset($model['_view_mode']);
     } else {
         $viewMode = Request::getViewMode();
         if (empty($viewMode)) {
             if (Request::isAjax()) {
                 $viewMode = 'Json';
             } else {
                 $viewMode = 'Php';
             }
         }
     }
     $view = ZView::getInstance($viewMode);
     if ('Php' === $viewMode) {
         $_tpl_file = Request::getTplFile();
         if (is_array($model) && !empty($model['_tpl_file'])) {
             $_tpl_file = $model['_tpl_file'];
             unset($model['_tpl_file']);
         }
         if (empty($_tpl_file)) {
             throw new \Exception("tpl file empty");
         }
         $view->setTpl($_tpl_file);
     }
     $view->setModel($model);
     return $view->display();
 }
Example #2
0
 /**
  * @return mixed
  * @throws \Exception
  * @desc fatal error处理
  */
 public static function fatalHandler()
 {
     $error = \error_get_last();
     if (empty($error)) {
         return;
     }
     if (!in_array($error['type'], array(E_ERROR, E_PARSE, E_CORE_ERROR, E_COMPILE_ERROR))) {
         return;
     }
     $config = ZConfig::get('project');
     $model = ZFormater::fatal($error);
     $info['data'] = null;
     if ($config['debug_mode']) {
         $info['debug'] = $model;
     }
     Log::info([\var_export($model, true)], 'fatal');
     $info['msg'] = $model['message'];
     $info['code'] = $model['code'];
     Response::status('200');
     if ('Php' == Request::getViewMode()) {
         if ($config['debug_mode']) {
             Request::setTplFile('public/exception.php');
         } else {
             Request::setTplFile('public/error.php');
         }
     }
     Response::display($info);
 }