private function createResponse(GuzzleResponse $response) { $body = $response->getBody(); return new Response($response->getStatusCode(), $response->getHeaders(), isset($body) ? $body->detach() : null, $response->getProtocolVersion(), $response->getReasonPhrase()); }
/** * Converts a Guzzle response into a PSR response. * * @param GuzzleResponse $response * * @return ResponseInterface */ private function createResponse(GuzzleResponse $response) { $body = $response->getBody(); return $this->messageFactory->createResponse($response->getStatusCode(), null, $response->getHeaders(), isset($body) ? $body->detach() : null, $response->getProtocolVersion()); }
/** * Get context fields to add to the time-line entry. * * @param RequestInterface $request * @param ResponseInterface $response * @param Exception $error * * @return array */ protected function getParameters(RequestInterface $request, ResponseInterface $response = null, Exception $error = null) { $params = []; $keys = array_intersect($this->context, $this->availableParameters); foreach ($keys as $key) { switch ($key) { case 'request': $result = $request; break; case 'response': $result = $response; break; case 'method': $result = $request->getMethod(); break; case 'url': $result = $request->getUrl(); break; case 'resource': $result = $request->getResource(); break; case 'request_version': $result = $request->getProtocolVersion(); break; case 'response_version': $result = $response ? $response->getProtocolVersion() : 'NULL'; break; case 'host': $result = $request->getHost(); break; case 'hostname': $result = gethostname(); break; case 'status_code': $result = $response ? $response->getStatusCode() : 'NULL'; break; case 'phrase': $result = $response ? $response->getReasonPhrase() : 'NULL'; break; case 'error': $result = $error ? $error->getMessage() : 'NULL'; break; } $params[$key] = (string) $result ?: ''; } return $params; }
/** * Returns a formatted message * * @param RequestInterface $request Request that was sent * @param ResponseInterface $response Response that was received * @param \Exception $error Exception that was received * @param array $customData Associative array of custom template data * * @return string */ public function format(RequestInterface $request, ResponseInterface $response = null, \Exception $error = null, array $customData = array()) { $cache = $customData; $that = $this; return preg_replace_callback('/{\\s*([A-Za-z_\\-\\.0-9]+)\\s*}/', function (array $matches) use($request, $response, $error, &$cache, $that) { if (isset($cache[$matches[1]])) { return $cache[$matches[1]]; } $result = ''; switch ($matches[1]) { case 'request': $result = $request; break; case 'response': $result = $response; break; case 'req_headers': $result = trim($request->getMethod() . ' ' . $request->getResource()) . ' HTTP/' . $request->getProtocolVersion() . "\r\n" . $that->headers($request); break; case 'res_headers': $result = $response ? sprintf('HTTP/%s %d %s', $response->getProtocolVersion(), $response->getStatusCode(), $response->getReasonPhrase()) . "\r\n" . $that->headers($response) : 'NULL'; break; case 'req_body': $result = $request->getBody(); break; case 'res_body': $result = $response ? $response->getBody() : 'NULL'; break; case 'ts': $result = gmdate('c'); break; case 'method': $result = $request->getMethod(); break; case 'url': $result = $request->getUrl(); break; case 'resource': $result = $request->getResource(); break; case 'req_version': $result = $request->getProtocolVersion(); break; case 'res_version': $result = $response ? $response->getProtocolVersion() : 'NULL'; break; case 'host': $result = $request->getHost(); break; case 'hostname': $result = gethostname(); break; case 'code': $result = $response ? $response->getStatusCode() : 'NULL'; break; case 'phrase': $result = $response ? $response->getReasonPhrase() : 'NULL'; break; case 'error': $result = $error ? $error->getMessage() : 'NULL'; break; default: // handle prefixed dynamic headers if (strpos($matches[1], 'req_header_') === 0) { $result = $request->getHeader(substr($matches[1], 11)); } elseif (strpos($matches[1], 'res_header_') === 0) { $result = $response ? $response->getHeader(substr($matches[1], 11)) : 'NULL'; } } $cache[$matches[1]] = $result; return $result; }, $this->template); }
/** * @param ResponseInterface $guzzleResponse * @return mixed */ protected function getResponseOptions($guzzleResponse) { $options = []; $reasonPhrase = $guzzleResponse->getReasonPhrase(); if (!empty($reasonPhrase)) { $options['reason_phrase'] = $reasonPhrase; } $protocolVersion = $guzzleResponse->getProtocolVersion(); if (!empty($protocolVersion)) { $options['protocol_version'] = $protocolVersion; return $options; } return $options; }