Skip to content

Commit 1bb0e0b

Browse files
committed
Fixed nyholm response implementation
1 parent 8bdb775 commit 1bb0e0b

1 file changed

Lines changed: 17 additions & 12 deletions

File tree

src/swoole-nyholm/src/RequestHandlerRunner.php

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Psr\Http\Server\RequestHandlerInterface;
66
use Swoole\Http\Request;
77
use Swoole\Http\Response;
8+
use Symfony\Component\HttpFoundation\Cookie;
89
use Symfony\Component\Runtime\RunnerInterface;
910

1011
class RequestHandlerRunner implements RunnerInterface
@@ -50,25 +51,29 @@ public function handle(Request $request, Response $response): void
5051

5152
$response->setStatusCode($psrResponse->getStatusCode(), $psrResponse->getReasonPhrase());
5253

53-
foreach ($psrResponse->allPreserveCaseWithoutCookies() as $name => $values) {
54+
foreach ($psrResponse->withoutHeader('set-cookies')->getHeaders() as $name => $values) {
5455
foreach ($values as $value) {
5556
$response->setHeader($name, $value);
5657
}
5758
}
5859

59-
foreach ($psrResponse->headers->getCookies() as $cookie) {
60-
$response->cookie(
61-
$cookie->getName(),
62-
$cookie->getValue() ?? '',
63-
$cookie->getExpiresTime(),
64-
$cookie->getPath(),
65-
$cookie->getDomain() ?? '',
66-
$cookie->isSecure(),
67-
$cookie->isHttpOnly(),
68-
$cookie->getSameSite() ?? ''
69-
);
60+
if ($psrResponse->hasHeader('set-cookies')) {
61+
foreach ($psrResponse->getHeader('set-cookies') as $cookieString) {
62+
$cookie = Cookie::fromString($cookieString);
63+
$response->cookie(
64+
$cookie->getName(),
65+
$cookie->getValue() ?? '',
66+
$cookie->getExpiresTime(),
67+
$cookie->getPath(),
68+
$cookie->getDomain() ?? '',
69+
$cookie->isSecure(),
70+
$cookie->isHttpOnly(),
71+
$cookie->getSameSite() ?? ''
72+
);
73+
}
7074
}
7175

76+
7277
$body = $psrResponse->getBody();
7378
$body->rewind();
7479

0 commit comments

Comments
 (0)