From 8623a036ed2e33b3ed3676cb0768eb95a8c9cc9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=91=E6=9E=97?= Date: Tue, 8 Jul 2025 11:43:04 +0800 Subject: [PATCH] eee --- src/Constrict/ConstrictResponse.php | 20 ++++++++++++++++++++ src/Response.php | 10 ++++++++++ 2 files changed, 30 insertions(+) diff --git a/src/Constrict/ConstrictResponse.php b/src/Constrict/ConstrictResponse.php index c9a0bda..c6e9a89 100644 --- a/src/Constrict/ConstrictResponse.php +++ b/src/Constrict/ConstrictResponse.php @@ -8,6 +8,7 @@ use Kiri\Router\ContentType; use Kiri\Router\StreamResponse; use Psr\Http\Message\ResponseInterface; + class ConstrictResponse extends Message implements ResponseInterface { @@ -30,6 +31,25 @@ class ConstrictResponse extends Message implements ResponseInterface } + /** + * @param string $url + * @param array $params + * @param int $statusCode + * @return static + */ + public function redirectTo(string $url, array $params = [], int $statusCode = 302): static + { + if (!empty($params)) { + $url .= '?' . http_build_query($params); + } + + $this->withHeader('Location', $url); + $this->withStatus($statusCode); + + return $this; + } + + /** * @param ContentType $contentType * @return $this diff --git a/src/Response.php b/src/Response.php index 8eab45e..808db4d 100644 --- a/src/Response.php +++ b/src/Response.php @@ -68,6 +68,16 @@ class Response implements ResponseInterface return $this->__call__(__FUNCTION__, $content, $statusCode); } + /** + * @param string $url + * @param array $params + * @param int $statusCode + * @return ResponseInterface + */ + public function redirectTo(string $url, array $params = [], int $statusCode = 302): ResponseInterface + { + return $this->__call__(__FUNCTION__, $url, $params, $statusCode); + } /** * @param array $content