public static function buildResponseFromHeader(array $headers) { $line = array_shift($headers); if (!empty($line)) { $parts = explode(' ', trim($line), 3); if (isset($parts[0]) && isset($parts[1]) && isset($parts[2])) { $scheme = strval($parts[0]); $code = intval($parts[1]); $message = strval($parts[2]); $response = new Response(); $response->setProtocolVersion($scheme); $response->setStatus($code, $message); // append header foreach ($headers as $line) { $parts = explode(':', $line, 2); if (isset($parts[0]) && isset($parts[1])) { $key = $parts[0]; $value = trim($parts[1]); $response->addHeader($key, $value); } } return $response; } else { throw new ParseException('Invalid status line format'); } } else { throw new ParseException('Couldnt find status line'); } }
public function createResponse() { $version = isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.1'; $response = new Response(); $response->setProtocolVersion($version); $response->setHeader('X-Powered-By', 'psx'); $response->setBody(new TempStream(fopen('php://temp', 'r+'))); return $response; }