public function DiactorosFactory::createResponse in Zircon Profile 8.0
Same name and namespace in other branches
- 8 vendor/symfony/psr-http-message-bridge/Factory/DiactorosFactory.php \Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory::createResponse()
Creates a PSR-7 Response instance from a Symfony one.
Parameters
Response $symfonyResponse:
Return value
ResponseInterface
Overrides HttpMessageFactoryInterface::createResponse
File
- vendor/
symfony/ psr-http-message-bridge/ Factory/ DiactorosFactory.php, line 120
Class
- DiactorosFactory
- Builds Psr\HttpMessage instances using the Zend Diactoros implementation.
Namespace
Symfony\Bridge\PsrHttpMessage\FactoryCode
public function createResponse(Response $symfonyResponse) {
if ($symfonyResponse instanceof BinaryFileResponse) {
$stream = new DiactorosStream($symfonyResponse
->getFile()
->getPathname(), 'r');
}
else {
$stream = new DiactorosStream('php://temp', 'wb+');
if ($symfonyResponse instanceof StreamedResponse) {
ob_start(function ($buffer) use ($stream) {
$stream
->write($buffer);
return false;
});
$symfonyResponse
->sendContent();
ob_end_clean();
}
else {
$stream
->write($symfonyResponse
->getContent());
}
}
$headers = $symfonyResponse->headers
->all();
$cookies = $symfonyResponse->headers
->getCookies();
if (!empty($cookies)) {
$headers['Set-Cookie'] = array();
foreach ($cookies as $cookie) {
$headers['Set-Cookie'][] = $cookie
->__toString();
}
}
$response = new DiactorosResponse($stream, $symfonyResponse
->getStatusCode(), $headers);
$protocolVersion = $symfonyResponse
->getProtocolVersion();
if ('1.1' !== $protocolVersion) {
$response = $response
->withProtocolVersion($protocolVersion);
}
return $response;
}