From e8e52355d49f208df9a9b9ceac043da5b0594ece Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Mon, 14 Jan 2019 15:19:12 +0100 Subject: [PATCH 1/3] [BrowserKit] deprecated Response::getStatus() in favor of Response::getStatusCode() --- UPGRADE-4.3.md | 5 +++++ UPGRADE-5.0.md | 1 + src/Symfony/Component/BrowserKit/CHANGELOG.md | 5 +++++ src/Symfony/Component/BrowserKit/Client.php | 4 ++-- src/Symfony/Component/BrowserKit/Response.php | 9 +++++++++ src/Symfony/Component/BrowserKit/Tests/ClientTest.php | 2 +- src/Symfony/Component/BrowserKit/Tests/ResponseTest.php | 9 +++++++++ 7 files changed, 32 insertions(+), 3 deletions(-) diff --git a/UPGRADE-4.3.md b/UPGRADE-4.3.md index d6a7f0020352..a6a1f73afb94 100644 --- a/UPGRADE-4.3.md +++ b/UPGRADE-4.3.md @@ -1,6 +1,11 @@ UPGRADE FROM 4.2 to 4.3 ======================= +BrowserKit +---------- + + * Deprecated `Response::getStatus()`, use `Response::getStatusCode()` instead + Config ------ diff --git a/UPGRADE-5.0.md b/UPGRADE-5.0.md index cf677c478a5d..ad9e6535a8bb 100644 --- a/UPGRADE-5.0.md +++ b/UPGRADE-5.0.md @@ -4,6 +4,7 @@ UPGRADE FROM 4.x to 5.0 BrowserKit ---------- + * Removed `Response::getStatus()`, use `Response::getStatusCode()` instead * The `Client::submit()` method has a new `$serverParameters` argument. Cache diff --git a/src/Symfony/Component/BrowserKit/CHANGELOG.md b/src/Symfony/Component/BrowserKit/CHANGELOG.md index 51d8fbf48c1d..55a8d7d51838 100644 --- a/src/Symfony/Component/BrowserKit/CHANGELOG.md +++ b/src/Symfony/Component/BrowserKit/CHANGELOG.md @@ -1,6 +1,11 @@ CHANGELOG ========= +4.3.0 +----- + + * Deprecated `Response::getStatus()`, use `Response::getStatusCode()` instead + 4.2.0 ----- diff --git a/src/Symfony/Component/BrowserKit/Client.php b/src/Symfony/Component/BrowserKit/Client.php index d483dbcb070c..0d1382a5f08f 100644 --- a/src/Symfony/Component/BrowserKit/Client.php +++ b/src/Symfony/Component/BrowserKit/Client.php @@ -409,7 +409,7 @@ public function request(string $method, string $uri, array $parameters = array() $this->cookieJar->updateFromResponse($this->internalResponse, $uri); - $status = $this->internalResponse->getStatus(); + $status = $this->internalResponse->getStatusCode(); if ($status >= 300 && $status < 400) { $this->redirect = $this->internalResponse->getHeader('Location'); @@ -599,7 +599,7 @@ public function followRedirect() $request = $this->internalRequest; - if (\in_array($this->internalResponse->getStatus(), array(301, 302, 303))) { + if (\in_array($this->internalResponse->getStatusCode(), array(301, 302, 303))) { $method = 'GET'; $files = array(); $content = null; diff --git a/src/Symfony/Component/BrowserKit/Response.php b/src/Symfony/Component/BrowserKit/Response.php index 6c50aeee4336..711e4d1aacf9 100644 --- a/src/Symfony/Component/BrowserKit/Response.php +++ b/src/Symfony/Component/BrowserKit/Response.php @@ -83,8 +83,17 @@ public function getContent() * Gets the response status code. * * @return int The response status code + * + * @deprecated since Symfony 4.3, use getStatusCode() instead */ public function getStatus() + { + @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.3, use getStatusCode() instead.', __METHOD__), E_USER_DEPRECATED); + + return $this->status; + } + + public function getStatusCode(): int { return $this->status; } diff --git a/src/Symfony/Component/BrowserKit/Tests/ClientTest.php b/src/Symfony/Component/BrowserKit/Tests/ClientTest.php index 1a34c623bcb9..e4cec8b393a3 100644 --- a/src/Symfony/Component/BrowserKit/Tests/ClientTest.php +++ b/src/Symfony/Component/BrowserKit/Tests/ClientTest.php @@ -52,7 +52,7 @@ protected function doRequest($request) protected function filterResponse($response) { if ($response instanceof SpecialResponse) { - return new Response($response->getContent(), $response->getStatus(), $response->getHeaders()); + return new Response($response->getContent(), $response->getStatusCode(), $response->getHeaders()); } return $response; diff --git a/src/Symfony/Component/BrowserKit/Tests/ResponseTest.php b/src/Symfony/Component/BrowserKit/Tests/ResponseTest.php index 0ba4e3b3a71d..8afebe454cc8 100644 --- a/src/Symfony/Component/BrowserKit/Tests/ResponseTest.php +++ b/src/Symfony/Component/BrowserKit/Tests/ResponseTest.php @@ -22,12 +22,21 @@ public function testGetUri() $this->assertEquals('foo', $response->getContent(), '->getContent() returns the content of the response'); } + /** + * @group legacy + */ public function testGetStatus() { $response = new Response('foo', 304); $this->assertEquals('304', $response->getStatus(), '->getStatus() returns the status of the response'); } + public function testGetStatusCode() + { + $response = new Response('foo', 304); + $this->assertEquals('304', $response->getStatusCode(), '->getStatusCode() returns the status of the response'); + } + public function testGetHeaders() { $response = new Response('foo', 200, array('foo' => 'bar')); From 0abff982e04296e7a77abd803e968f59d1e3825e Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Mon, 14 Jan 2019 15:23:01 +0100 Subject: [PATCH 2/3] [BrowserKit] deprecated Response::buildHeader() --- UPGRADE-4.3.md | 1 + UPGRADE-5.0.md | 1 + src/Symfony/Component/BrowserKit/CHANGELOG.md | 1 + src/Symfony/Component/BrowserKit/Response.php | 8 ++++++-- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/UPGRADE-4.3.md b/UPGRADE-4.3.md index a6a1f73afb94..2e6c64b2b9b7 100644 --- a/UPGRADE-4.3.md +++ b/UPGRADE-4.3.md @@ -4,6 +4,7 @@ UPGRADE FROM 4.2 to 4.3 BrowserKit ---------- + * Deprecated `Response::buildHeader()` * Deprecated `Response::getStatus()`, use `Response::getStatusCode()` instead Config diff --git a/UPGRADE-5.0.md b/UPGRADE-5.0.md index ad9e6535a8bb..f1acd19efff1 100644 --- a/UPGRADE-5.0.md +++ b/UPGRADE-5.0.md @@ -4,6 +4,7 @@ UPGRADE FROM 4.x to 5.0 BrowserKit ---------- + * Removed `Response::buildHeader()` * Removed `Response::getStatus()`, use `Response::getStatusCode()` instead * The `Client::submit()` method has a new `$serverParameters` argument. diff --git a/src/Symfony/Component/BrowserKit/CHANGELOG.md b/src/Symfony/Component/BrowserKit/CHANGELOG.md index 55a8d7d51838..37a724261a58 100644 --- a/src/Symfony/Component/BrowserKit/CHANGELOG.md +++ b/src/Symfony/Component/BrowserKit/CHANGELOG.md @@ -4,6 +4,7 @@ CHANGELOG 4.3.0 ----- + * Deprecated `Response::buildHeader()` * Deprecated `Response::getStatus()`, use `Response::getStatusCode()` instead 4.2.0 diff --git a/src/Symfony/Component/BrowserKit/Response.php b/src/Symfony/Component/BrowserKit/Response.php index 711e4d1aacf9..9045da567312 100644 --- a/src/Symfony/Component/BrowserKit/Response.php +++ b/src/Symfony/Component/BrowserKit/Response.php @@ -45,10 +45,10 @@ public function __toString() $headers = ''; foreach ($this->headers as $name => $value) { if (\is_string($value)) { - $headers .= $this->buildHeader($name, $value); + $headers .= sprintf("%s: %s\n", $name, $value); } else { foreach ($value as $headerValue) { - $headers .= $this->buildHeader($name, $headerValue); + $headers .= sprintf("%s: %s\n", $name, $headerValue); } } } @@ -63,9 +63,13 @@ public function __toString() * @param string $value The header value * * @return string The built header line + * + * @deprecated since Symfony 4.3 */ protected function buildHeader($name, $value) { + @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.3.', __METHOD__), E_USER_DEPRECATED); + return sprintf("%s: %s\n", $name, $value); } From 9045a4e580d3ff1316831ac8cb78d3bfb1dce87d Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Mon, 14 Jan 2019 15:42:11 +0100 Subject: [PATCH 3/3] [BrowserKit] marked Response as @final --- UPGRADE-4.3.md | 1 + UPGRADE-5.0.md | 1 + src/Symfony/Component/BrowserKit/CHANGELOG.md | 1 + src/Symfony/Component/BrowserKit/Response.php | 5 +++++ 4 files changed, 8 insertions(+) diff --git a/UPGRADE-4.3.md b/UPGRADE-4.3.md index 2e6c64b2b9b7..4eb383d46710 100644 --- a/UPGRADE-4.3.md +++ b/UPGRADE-4.3.md @@ -4,6 +4,7 @@ UPGRADE FROM 4.2 to 4.3 BrowserKit ---------- + * Marked `Response` final. * Deprecated `Response::buildHeader()` * Deprecated `Response::getStatus()`, use `Response::getStatusCode()` instead diff --git a/UPGRADE-5.0.md b/UPGRADE-5.0.md index f1acd19efff1..f446a7c15a37 100644 --- a/UPGRADE-5.0.md +++ b/UPGRADE-5.0.md @@ -4,6 +4,7 @@ UPGRADE FROM 4.x to 5.0 BrowserKit ---------- + * Removed the possibility to extend `Response` by making it final. * Removed `Response::buildHeader()` * Removed `Response::getStatus()`, use `Response::getStatusCode()` instead * The `Client::submit()` method has a new `$serverParameters` argument. diff --git a/src/Symfony/Component/BrowserKit/CHANGELOG.md b/src/Symfony/Component/BrowserKit/CHANGELOG.md index 37a724261a58..5ff92bb02477 100644 --- a/src/Symfony/Component/BrowserKit/CHANGELOG.md +++ b/src/Symfony/Component/BrowserKit/CHANGELOG.md @@ -4,6 +4,7 @@ CHANGELOG 4.3.0 ----- + * Marked `Response` final. * Deprecated `Response::buildHeader()` * Deprecated `Response::getStatus()`, use `Response::getStatusCode()` instead diff --git a/src/Symfony/Component/BrowserKit/Response.php b/src/Symfony/Component/BrowserKit/Response.php index 9045da567312..845be10b686c 100644 --- a/src/Symfony/Component/BrowserKit/Response.php +++ b/src/Symfony/Component/BrowserKit/Response.php @@ -13,11 +13,16 @@ /** * @author Fabien Potencier + * + * @final since Symfony 4.3 */ class Response { + /** @internal */ protected $content; + /** @internal */ protected $status; + /** @internal */ protected $headers; /**