Skip to content

Commit 8bdb775

Browse files
authored
Handle cookie separately.
1 parent 182563a commit 8bdb775

2 files changed

Lines changed: 28 additions & 2 deletions

File tree

src/swoole-nyholm/src/RequestHandlerRunner.php

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,25 @@ public function handle(Request $request, Response $response): void
5050

5151
$response->setStatusCode($psrResponse->getStatusCode(), $psrResponse->getReasonPhrase());
5252

53-
foreach ($psrResponse->getHeaders() as $name => $values) {
53+
foreach ($psrResponse->allPreserveCaseWithoutCookies() as $name => $values) {
5454
foreach ($values as $value) {
5555
$response->setHeader($name, $value);
5656
}
5757
}
5858

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+
);
70+
}
71+
5972
$body = $psrResponse->getBody();
6073
$body->rewind();
6174

src/swoole/src/SymfonyHttpBridge.php

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,25 @@ public static function convertSwooleRequest(Request $request): SymfonyRequest
3737

3838
public static function reflectSymfonyResponse(SymfonyResponse $sfResponse, Response $response): void
3939
{
40-
foreach ($sfResponse->headers->all() as $name => $values) {
40+
foreach ($sfResponse->headers->allPreserveCaseWithoutCookies() as $name => $values) {
4141
foreach ((array) $values as $value) {
4242
$response->header((string) $name, $value);
4343
}
4444
}
4545

46+
foreach ($sfResponse->headers->getCookies() as $cookie) {
47+
$response->cookie(
48+
$cookie->getName(),
49+
$cookie->getValue() ?? '',
50+
$cookie->getExpiresTime(),
51+
$cookie->getPath(),
52+
$cookie->getDomain() ?? '',
53+
$cookie->isSecure(),
54+
$cookie->isHttpOnly(),
55+
$cookie->getSameSite() ?? ''
56+
);
57+
}
58+
4659
$response->status($sfResponse->getStatusCode());
4760

4861
switch (true) {

0 commit comments

Comments
 (0)