diff --git a/src/ServerRequestFactory.php b/src/ServerRequestFactory.php index 5924f68f..ec81fc9c 100644 --- a/src/ServerRequestFactory.php +++ b/src/ServerRequestFactory.php @@ -114,10 +114,10 @@ public static function fromSwoole(swoole_http_request $request) if (! extension_loaded('swoole')) { throw new Exception\RuntimeException('Swoole extension is not installed!'); } - $get = $request->get ?? []; - $post = $request->post ?? []; - $cookie = $request->cookie ?? []; - $files = $request->files ?? []; + $get = isset($request->get) ? $request->get : []; + $post = isset($request->post) ? $request->post : []; + $cookie = isset($request->cookie) ? $request->cookie : []; + $files = isset($request->files) ? $request->files : []; $server = [ 'REQUEST_METHOD' => $request->server['request_method'], @@ -126,23 +126,36 @@ public static function fromSwoole(swoole_http_request $request) 'REQUEST_TIME' => $request->server['request_time'], 'GATEWAY_INTERFACE' => 'swoole/' . SWOOLE_VERSION, // Server - 'SERVER_PROTOCOL' => $request->header['server_protocol'] ?? $request->server['server_protocol'], - 'REQUEST_SCHEMA' => $request->header['request_scheme'] ?? + 'SERVER_PROTOCOL' => isset($request->header['server_protocol']) ? + $request->header['server_protocol'] : $request->server['server_protocol'], + 'REQUEST_SCHEMA' => isset($request->header['request_scheme']) ? + $request->header['request_scheme'] : explode('/', $request->server['server_protocol'])[0], - 'SERVER_NAME' => $request->header['server_name'] ?? $request->header['host'], + 'SERVER_NAME' => isset($request->header['server_name']) ? + $request->header['server_name'] : $request->header['host'], 'SERVER_ADDR' => $request->header['host'], - 'SERVER_PORT' => $request->header['server_port'] ?? $request->server['server_port'], - 'REMOTE_ADDR' => $request->server['remote_addr'] ?? $request->header['host'], - 'REMOTE_PORT' => $request->header['remote_port'] ?? $request->server['remote_port'], - 'QUERY_STRING' => $request->server['query_string'] ?? '', + 'SERVER_PORT' => isset($request->header['server_port']) ? + $request->header['server_port'] : $request->server['server_port'], + 'REMOTE_ADDR' => isset($request->server['remote_addr']) ? + $request->server['remote_addr'] : $request->header['host'], + 'REMOTE_PORT' => isset($request->header['remote_port']) ? + $request->header['remote_port'] : $request->server['remote_port'], + 'QUERY_STRING' => isset($request->server['query_string']) ? + $request->server['query_string'] : '', // Headers 'HTTP_HOST' => $request->header['host'], - 'HTTP_USER_AGENT' => $request->header['user-agent'] ?? '', - 'HTTP_ACCEPT' => $request->header['accept'] ?? '*/*', - 'HTTP_ACCEPT_LANGUAGE' => $request->header['accept-language'] ?? '', - 'HTTP_ACCEPT_ENCODING' => $request->header['accept-encoding'] ?? '', - 'HTTP_CONNECTION' => $request->header['connection'] ?? '', - 'HTTP_CACHE_CONTROL' => $request->header['cache-control'] ?? '', + 'HTTP_USER_AGENT' => isset($request->header['user-agent']) ? + $request->header['user-agent'] : '', + 'HTTP_ACCEPT' => isset($request->header['accept']) ? + $request->header['accept'] : '*/*', + 'HTTP_ACCEPT_LANGUAGE' => isset($request->header['accept-language']) ? + $request->header['accept-language'] : '', + 'HTTP_ACCEPT_ENCODING' => isset($request->header['accept-encoding']) ? + $request->header['accept-encoding'] : '', + 'HTTP_CONNECTION' => isset($request->header['connection']) ? + $request->header['connection'] : '', + 'HTTP_CACHE_CONTROL' => isset($request->header['cache-control']) ? + $request->header['cache-control'] : '', ]; $headers = [];