Ejemplo n.º 1
0
 /**
  * 获取route的scheme和port
  * @param RouteInterface $route
  * @return array
  */
 protected function getRouteSchemeAndPort(RouteInterface $route)
 {
     $scheme = $this->context->getScheme();
     $requiredSchemes = $route->getSchemes();
     //如果当前请求协议不在route要求的协议内则使用第一个要求的协议
     if (!empty($requiredSchemes) && !in_array($scheme, $requiredSchemes)) {
         $scheme = reset($requiredSchemes);
     }
     $port = '';
     if (strcasecmp($scheme, 'http') == 0 && $this->context->getHttpPort() != 80) {
         $port = ':' . $this->context->getHttpPort();
     } elseif (strcasecmp($scheme, 'https') == 0 && $this->context->getHttpsPort() != 443) {
         $port = ':' . $this->context->getHttpsPort();
     }
     return [$scheme, $port];
 }