Example #1
0
File: Route.php Project: phpdn/zphp
 public static function route()
 {
     $action = Config::get('ctrl_path', 'ctrl') . '\\' . Request::getCtrl();
     $class = Factory::getInstance($action);
     try {
         if (!$class instanceof IController) {
             throw new \Exception("ctrl error");
         } else {
             $view = null;
             if ($class->_before()) {
                 $method = Request::getMethod();
                 if (!method_exists($class, $method)) {
                     throw new \Exception("method error");
                 }
                 $view = $class->{$method}();
             } else {
                 throw new \Exception($action . ':' . Request::getMethod() . ' _before() no return true');
             }
             $class->_after();
             if (Request::isLongServer()) {
                 SSESSION::save();
             }
             return Response::display($view);
         }
     } catch (\Exception $e) {
         if (Request::isLongServer()) {
             $result = \call_user_func(Config::getField('project', 'exception_handler', 'ZPHP\\ZPHP::exceptionHandler'), $e);
             if ($class instanceof IController) {
                 $class->_after();
             }
             return $result;
         }
         if ($class instanceof IController) {
             $class->_after();
         }
         throw $e;
     }
 }
Example #2
0
 public static function start($sessionType = '', $config = '')
 {
     if (Request::isLongServer()) {
         return Swoole::start($sessionType, $config);
     }
     if (false === self::$isStart) {
         if (empty($config)) {
             $config = ZConfig::get('session');
         }
         if (!empty($config['adapter'])) {
             $sessionType = $config['adapter'];
         }
         $lifetime = 0;
         if (!empty($config['cache_expire'])) {
             \session_cache_expire($config['cache_expire']);
             $lifetime = $config['cache_expire'] * 60;
         }
         $path = empty($config['path']) ? '/' : $config['path'];
         $domain = empty($config['domain']) ? '' : $config['domain'];
         $secure = empty($config['secure']) ? false : $config['secure'];
         $httponly = !isset($config['httponly']) ? true : $config['httponly'];
         \session_set_cookie_params($lifetime, $path, $domain, $secure, $httponly);
         $sessionName = empty($config['session_name']) ? 'ZPHPSESSID' : $config['session_name'];
         \session_name($sessionName);
         if (!empty($_GET[$sessionName])) {
             \session_id($_GET[$sessionName]);
         } elseif (!empty($_SERVER[$sessionName])) {
             \session_id($_SERVER[$sessionName]);
         }
         if (!empty($sessionType)) {
             $handler = self::getInstance($sessionType, $config);
             \session_set_save_handler(array($handler, 'open'), array($handler, 'close'), array($handler, 'read'), array($handler, 'write'), array($handler, 'destroy'), array($handler, 'gc'));
         }
         \session_start();
         self::$isStart = true;
     }
 }