|
5 | 5 | use Psr\Http\Server\RequestHandlerInterface; |
6 | 6 | use Swoole\Http\Request; |
7 | 7 | use Swoole\Http\Response; |
| 8 | +use Symfony\Component\HttpFoundation\Cookie; |
8 | 9 | use Symfony\Component\Runtime\RunnerInterface; |
9 | 10 |
|
10 | 11 | class RequestHandlerRunner implements RunnerInterface |
@@ -50,25 +51,29 @@ public function handle(Request $request, Response $response): void |
50 | 51 |
|
51 | 52 | $response->setStatusCode($psrResponse->getStatusCode(), $psrResponse->getReasonPhrase()); |
52 | 53 |
|
53 | | - foreach ($psrResponse->allPreserveCaseWithoutCookies() as $name => $values) { |
| 54 | + foreach ($psrResponse->withoutHeader('set-cookies')->getHeaders() as $name => $values) { |
54 | 55 | foreach ($values as $value) { |
55 | 56 | $response->setHeader($name, $value); |
56 | 57 | } |
57 | 58 | } |
58 | 59 |
|
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 | + } |
70 | 74 | } |
71 | 75 |
|
| 76 | + |
72 | 77 | $body = $psrResponse->getBody(); |
73 | 78 | $body->rewind(); |
74 | 79 |
|
|
0 commit comments