Пример #1
0
 /**
  *  请求发起
  */
 public function onRequest($request, $response)
 {
     Utils::$response = $response;
     $this->protocol->parse($_REQUEST);
     $result = Core\Route::route($this->protocol);
     return $response->end($result);
 }
Пример #2
0
 public function display()
 {
     if (Config::get('server_mode') == 'Http') {
         Utils::header("Content-Type", "text/xml; charset=utf-8");
         echo $this->xmlEncode();
         return null;
     }
     return $this->xmlEncode();
 }
Пример #3
0
 public function display()
 {
     if (Config::get('server_mode') == 'Http') {
         Utils::header('Content-Type', 'application/amf; charset=utf-8');
         echo \amf3_encode($this->model);
     } else {
         return \amf3_encode($this->model);
     }
 }
Пример #4
0
 public static function getViewMode()
 {
     if (Request::isLongServer()) {
         return ZConfig::getField('project', 'view_mode', 'Json');
     }
     if (\ZPHP\Common\Utils::isAjax()) {
         return 'Json';
     }
     return 'Php';
 }
Пример #5
0
 public function display()
 {
     $pack = new MessagePacker();
     $pack->writeString(json_encode($this->model));
     if (Config::get('server_mode') == 'Http') {
         Utils::header("Content-Type", "application/zpack; charset=utf-8");
         echo $pack->getData();
     } else {
         return array($this->model, $pack->getData);
     }
 }
Пример #6
0
 public function display()
 {
     if (Config::get('server_mode') == 'Http') {
         Utils::header("Content-Type", "text/plain; charset=utf-8");
         if (\is_string($this->model)) {
             echo $this->model;
         } else {
             echo json_encode($this->model);
         }
         return null;
     }
     return $this->model;
 }
Пример #7
0
 public function display()
 {
     if (Config::get('server_mode') == 'Http') {
         $data = \json_encode($this->model);
         if (isset($_GET['jsoncallback'])) {
             Utils::header("Content-Type", 'application/x-javascript; charset=utf-8');
             echo $_GET['jsoncallback'] . '(' . $data . ')';
         } else {
             Utils::header("Content-Type", "application/json; charset=utf-8");
             echo $data;
         }
     } else {
         return \json_encode($this->model);
     }
 }
Пример #8
0
 public function display()
 {
     $jsonData = \json_encode($this->model);
     $data = gzencode($jsonData);
     $pack = new MessagePacker();
     $len = strlen($data);
     $pack->writeInt($len + 16);
     $pack->writeInt($this->model['cmd']);
     $pack->writeInt($this->model['rid']);
     $pack->writeString($data, $len);
     if (Config::get('server_mode') == 'Http') {
         Utils::header("Content-Type", "application/zrpack; charset=utf-8");
         echo $pack->getData();
     } else {
         return array($jsonData, $pack->getData());
     }
 }
Пример #9
0
 public function display($model)
 {
     //        ($viewMode = $this->_view_mode) || ($viewMode = Config::getField('project', 'view_mode', ''));
     if ($this->_view_mode) {
         $viewMode = $this->_view_mode;
     } else {
         $viewMode = Config::getField('project', 'view_mode');
     }
     if (is_array($model) && !empty($model['_view_mode'])) {
         $viewMode = $model['_view_mode'];
         unset($model['_view_mode']);
     }
     $this->_view_mode = null;
     if (empty($viewMode)) {
         if (ZUtils::isAjax()) {
             $viewMode = 'Json';
         } else {
             $viewMode = 'Php';
         }
     }
     $view = View\Factory::getInstance($viewMode);
     if ('Php' === $viewMode) {
         if (is_array($model) && !empty($model['_tpl_file'])) {
             $view->setTpl($model['_tpl_file']);
             unset($model['_tpl_file']);
         } else {
             if (!empty($this->_tpl_file)) {
                 $view->setTpl($this->_tpl_file);
                 $this->_tpl_file = null;
             } else {
                 throw new \Exception("tpl file empty");
             }
         }
     }
     $view->setModel($model);
     return $view->display();
 }
Пример #10
0
 public static final 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;
     }
     Utils::status('200');
     $exceptionView = View\Factory::getInstance();
     $exceptionView->setModel(Formater::fatal($error));
     $exceptionView->display();
 }