From dbed6eb1d17a6504ce0fee58fb41224872d52627 Mon Sep 17 00:00:00 2001 From: "Alexander M. Turek" Date: Sun, 30 Jul 2023 12:37:03 +0200 Subject: [PATCH] [PsrHttpMessageBridge] Remove ArgumentValueResolverInterface from PsrServerRequestResolver --- UPGRADE-6.4.md | 5 ++++ .../PsrServerRequestResolver.php | 22 ++++------------ .../ValueResolverInterface.php | 26 ------------------- .../Bridge/PsrHttpMessage/CHANGELOG.md | 1 + .../PsrServerRequestResolverTest.php | 20 -------------- .../Bridge/PsrHttpMessage/composer.json | 16 +++++++----- 6 files changed, 20 insertions(+), 70 deletions(-) delete mode 100644 src/Symfony/Bridge/PsrHttpMessage/ArgumentValueResolver/ValueResolverInterface.php diff --git a/UPGRADE-6.4.md b/UPGRADE-6.4.md index de9921cfa28d6..c276de47cfb2c 100644 --- a/UPGRADE-6.4.md +++ b/UPGRADE-6.4.md @@ -60,6 +60,11 @@ MonologBridge * Add native return type to `Logger::clear()` and to `DebugProcessor::clear()` +PsrHttpMessageBridge +-------------------- + + * Remove `ArgumentValueResolverInterface` from `PsrServerRequestResolver` + Routing ------- diff --git a/src/Symfony/Bridge/PsrHttpMessage/ArgumentValueResolver/PsrServerRequestResolver.php b/src/Symfony/Bridge/PsrHttpMessage/ArgumentValueResolver/PsrServerRequestResolver.php index fb9ec0bbf724b..79fefd8966954 100644 --- a/src/Symfony/Bridge/PsrHttpMessage/ArgumentValueResolver/PsrServerRequestResolver.php +++ b/src/Symfony/Bridge/PsrHttpMessage/ArgumentValueResolver/PsrServerRequestResolver.php @@ -16,8 +16,7 @@ use Psr\Http\Message\ServerRequestInterface; use Symfony\Bridge\PsrHttpMessage\HttpMessageFactoryInterface; use Symfony\Component\HttpFoundation\Request; -use Symfony\Component\HttpKernel\Controller\ArgumentValueResolverInterface; -use Symfony\Component\HttpKernel\Controller\ValueResolverInterface as BaseValueResolverInterface; +use Symfony\Component\HttpKernel\Controller\ValueResolverInterface; use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata; /** @@ -26,7 +25,7 @@ * @author Iltar van der Berg * @author Alexander M. Turek */ -final class PsrServerRequestResolver implements ArgumentValueResolverInterface, ValueResolverInterface +final class PsrServerRequestResolver implements ValueResolverInterface { private const SUPPORTED_TYPES = [ ServerRequestInterface::class => true, @@ -34,20 +33,9 @@ final class PsrServerRequestResolver implements ArgumentValueResolverInterface, MessageInterface::class => true, ]; - private $httpMessageFactory; - - public function __construct(HttpMessageFactoryInterface $httpMessageFactory) - { - $this->httpMessageFactory = $httpMessageFactory; - } - - public function supports(Request $request, ArgumentMetadata $argument): bool - { - if ($this instanceof BaseValueResolverInterface) { - trigger_deprecation('symfony/psr-http-message-bridge', '2.3', 'Method "%s" is deprecated, call "resolve()" without calling "supports()" first.', __METHOD__); - } - - return self::SUPPORTED_TYPES[$argument->getType()] ?? false; + public function __construct( + private readonly HttpMessageFactoryInterface $httpMessageFactory, + ) { } public function resolve(Request $request, ArgumentMetadata $argument): \Traversable diff --git a/src/Symfony/Bridge/PsrHttpMessage/ArgumentValueResolver/ValueResolverInterface.php b/src/Symfony/Bridge/PsrHttpMessage/ArgumentValueResolver/ValueResolverInterface.php deleted file mode 100644 index 83a321ab7efa0..0000000000000 --- a/src/Symfony/Bridge/PsrHttpMessage/ArgumentValueResolver/ValueResolverInterface.php +++ /dev/null @@ -1,26 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\PsrHttpMessage\ArgumentValueResolver; - -use Symfony\Component\HttpKernel\Controller\ValueResolverInterface as BaseValueResolverInterface; - -if (interface_exists(BaseValueResolverInterface::class)) { - /** @internal */ - interface ValueResolverInterface extends BaseValueResolverInterface - { - } -} else { - /** @internal */ - interface ValueResolverInterface - { - } -} diff --git a/src/Symfony/Bridge/PsrHttpMessage/CHANGELOG.md b/src/Symfony/Bridge/PsrHttpMessage/CHANGELOG.md index bc5652ec49e4f..392833d4ccb95 100644 --- a/src/Symfony/Bridge/PsrHttpMessage/CHANGELOG.md +++ b/src/Symfony/Bridge/PsrHttpMessage/CHANGELOG.md @@ -5,6 +5,7 @@ CHANGELOG --- * Import the bridge into the Symfony monorepo and synchronize releases + * Remove `ArgumentValueResolverInterface` from `PsrServerRequestResolver` 2.3.1 ----- diff --git a/src/Symfony/Bridge/PsrHttpMessage/Tests/ArgumentValueResolver/PsrServerRequestResolverTest.php b/src/Symfony/Bridge/PsrHttpMessage/Tests/ArgumentValueResolver/PsrServerRequestResolverTest.php index 3ff2871368a98..662b18691c4ee 100644 --- a/src/Symfony/Bridge/PsrHttpMessage/Tests/ArgumentValueResolver/PsrServerRequestResolverTest.php +++ b/src/Symfony/Bridge/PsrHttpMessage/Tests/ArgumentValueResolver/PsrServerRequestResolverTest.php @@ -15,21 +15,16 @@ use Psr\Http\Message\MessageInterface; use Psr\Http\Message\RequestInterface; use Psr\Http\Message\ServerRequestInterface; -use Symfony\Bridge\PhpUnit\ExpectDeprecationTrait; use Symfony\Bridge\PsrHttpMessage\ArgumentValueResolver\PsrServerRequestResolver; use Symfony\Bridge\PsrHttpMessage\HttpMessageFactoryInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Controller\ArgumentResolver; -use Symfony\Component\HttpKernel\Controller\ValueResolverInterface; -use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata; /** * @author Alexander M. Turek */ final class PsrServerRequestResolverTest extends TestCase { - use ExpectDeprecationTrait; - public function testServerRequest() { $symfonyRequest = $this->createMock(Request::class); @@ -60,21 +55,6 @@ public function testMessage() self::assertSame([$psrRequest], $resolver->getArguments($symfonyRequest, static function (MessageInterface $request): void {})); } - /** - * @group legacy - */ - public function testDeprecatedSupports() - { - if (!interface_exists(ValueResolverInterface::class)) { - $this->markTestSkipped('Requires symfony/http-kernel 6.2.'); - } - - $resolver = new PsrServerRequestResolver($this->createStub(HttpMessageFactoryInterface::class)); - - $this->expectDeprecation('Since symfony/psr-http-message-bridge 2.3: Method "Symfony\Bridge\PsrHttpMessage\ArgumentValueResolver\PsrServerRequestResolver::supports" is deprecated, call "resolve()" without calling "supports()" first.'); - $resolver->supports($this->createStub(Request::class), $this->createStub(ArgumentMetadata::class)); - } - private function bootstrapResolver(Request $symfonyRequest, ServerRequestInterface $psrRequest): ArgumentResolver { $messageFactory = $this->createMock(HttpMessageFactoryInterface::class); diff --git a/src/Symfony/Bridge/PsrHttpMessage/composer.json b/src/Symfony/Bridge/PsrHttpMessage/composer.json index 435dacb7b0ec5..06a9ed4b58993 100644 --- a/src/Symfony/Bridge/PsrHttpMessage/composer.json +++ b/src/Symfony/Bridge/PsrHttpMessage/composer.json @@ -18,17 +18,19 @@ "require": { "php": ">=8.1", "psr/http-message": "^1.0|^2.0", - "symfony/deprecation-contracts": "^2.5|^3.0", "symfony/http-foundation": "^5.4|^6.0" }, "require-dev": { - "symfony/browser-kit": "^5.4|^6.0", - "symfony/config": "^5.4|^6.0", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/framework-bundle": "^5.4|^6.0", - "symfony/http-kernel": "^5.4|^6.0", + "symfony/browser-kit": "^5.4|^6.0|^7.0", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/framework-bundle": "^6.2|^7.0", + "symfony/http-kernel": "^6.2|^7.0", "nyholm/psr7": "^1.1", - "psr/log": "^1.1|^2|^3" + "psr/log": "^1.1.4|^2|^3" + }, + "conflict": { + "symfony/http-kernel": "<6.2" }, "suggest": { "nyholm/psr7": "For a super lightweight PSR-7/17 implementation"