/** * 获取route的scheme和port * * @param RouteInterface $route * @return array */ protected function _getRouteSchemeAndPort(RouteInterface $route) { $scheme = $this->_context->getScheme(); $requiredSchemes = $route->getSchemes(); 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]; }