From 857983643eabac6fc954f915d741ee14f6fe2ac8 Mon Sep 17 00:00:00 2001 From: upstream Date: Fri, 4 Sep 2026 09:37:47 +0200 Subject: [PATCH] Upstream spatie/url state of the touched files before 1042a286b8 --- src/QueryParameterBag.php | 6 +----- tests/QueryParameterBagTest.php | 15 --------------- 2 files changed, 1 insertion(+), 20 deletions(-) diff --git a/src/QueryParameterBag.php b/src/QueryParameterBag.php index 68b699e..4e4c205 100644 --- a/src/QueryParameterBag.php +++ b/src/QueryParameterBag.php @@ -65,10 +65,6 @@ class QueryParameterBag implements \Stringable public function __toString(): string { - // Valueless parameters are stored as null, which http_build_query() skips; - // render them with an empty value so they survive. - $parameters = array_map(fn ($value) => $value ?? '', $this->parameters); - - return http_build_query($parameters, '', '&', PHP_QUERY_RFC3986); + return http_build_query($this->parameters, '', '&', PHP_QUERY_RFC3986); } } diff --git a/tests/QueryParameterBagTest.php b/tests/QueryParameterBagTest.php index bfc8fe1..55f870c 100644 --- a/tests/QueryParameterBagTest.php +++ b/tests/QueryParameterBagTest.php @@ -89,21 +89,6 @@ it('can be casted to a string', function () { }); -it('keeps valueless parameters when being casted to a string', function () { - $queryParameterBag = QueryParameterBag::fromString('offset'); - - expect($queryParameterBag)->has('offset')->toBeTrue(); - expect($queryParameterBag)->__toString()->toEqual('offset='); -}); - - -it('keeps valueless parameters alongside valued ones when being casted to a string', function () { - $queryParameterBag = QueryParameterBag::fromString('foo=&bar=baz'); - - expect($queryParameterBag)->__toString()->toEqual('foo=&bar=baz'); -}); - - it('can be created from a string with url encoded values', function () { $queryParameterBag = QueryParameterBag::fromString( 'category=storage%20furniture&discount=%3E40%25%20off&range%5B0%5D=10&range%5B1%5D=20'