From a0e7ec9bc616001605d05db5268b8d145357b94f Mon Sep 17 00:00:00 2001 From: Alexander Schranz Date: Mon, 22 May 2023 15:05:51 +0200 Subject: [PATCH] Add support for PHP 8.2 (#4) * Add support for PHP 8.2 * Fix Deptrac dependency * Update rector * Fix php-cs --- .github/workflows/test-application.yaml | 6 ++++++ composer.json | 6 +++--- rector.php | 2 +- .../Symfony/HttpKernel/SuluMessengerBundle.php | 3 +-- tests/Traits/PrivatePropertyTrait.php | 8 +++----- .../FlushMiddleware/DoctrineFlushMiddlewareTest.php | 3 +-- .../Messenger/LockMiddleware/LockMiddlewareTest.php | 3 +-- .../UnpackExceptionMiddlewareTest.php | 8 +++----- 8 files changed, 19 insertions(+), 20 deletions(-) diff --git a/.github/workflows/test-application.yaml b/.github/workflows/test-application.yaml index 1d8b5ea..2e23e78 100644 --- a/.github/workflows/test-application.yaml +++ b/.github/workflows/test-application.yaml @@ -26,6 +26,12 @@ jobs: SYMFONY_DEPRECATIONS_HELPER: weak - php-version: '8.1' + coverage: false + dependency-versions: 'highest' + env: + SYMFONY_DEPRECATIONS_HELPER: weak + + - php-version: '8.2' coverage: true dependency-versions: 'highest' env: diff --git a/composer.json b/composer.json index 70b5979..f4bb4db 100644 --- a/composer.json +++ b/composer.json @@ -4,7 +4,7 @@ "license": "proprietary", "type": "sulu-bundle", "require": { - "php": "8.0.* || 8.1.*", + "php": "8.0.* || 8.1.* || 8.2.*", "doctrine/dbal": "^3.3", "doctrine/doctrine-bundle": "^2.5", "doctrine/orm": "^2.11", @@ -32,8 +32,8 @@ "phpstan/phpstan-symfony": "^1.1", "phpstan/phpstan-webmozart-assert": "^1.0", "phpunit/phpunit": "^9.5", - "qossmic/deptrac-shim": "^0.23.0", - "rector/rector": "^0.13.10", + "qossmic/deptrac-shim": "^0.24.0 || ^1.0", + "rector/rector": "^0.15.0", "schranz/test-generator": "^0.4", "symfony/browser-kit": "^5.4 || ^6.0", "symfony/css-selector": "^5.4 || ^6.0", diff --git a/rector.php b/rector.php index df1c151..ffcbde9 100644 --- a/rector.php +++ b/rector.php @@ -26,7 +26,7 @@ // basic rules $rectorConfig->importNames(); - $rectorConfig->importShortClasses(); + $rectorConfig->importShortClasses(false); $rectorConfig->sets([ SetList::CODE_QUALITY, diff --git a/src/Infrastructure/Symfony/HttpKernel/SuluMessengerBundle.php b/src/Infrastructure/Symfony/HttpKernel/SuluMessengerBundle.php index dc418ca..78de88e 100644 --- a/src/Infrastructure/Symfony/HttpKernel/SuluMessengerBundle.php +++ b/src/Infrastructure/Symfony/HttpKernel/SuluMessengerBundle.php @@ -4,7 +4,6 @@ namespace Sulu\Messenger\Infrastructure\Symfony\HttpKernel; -use RuntimeException; use Symfony\Component\Config\Definition\Builder\TreeBuilder; use Symfony\Component\Config\Definition\ConfigurationInterface; use Symfony\Component\Config\FileLocator; @@ -53,7 +52,7 @@ public function getConfiguration(array $config, ContainerBuilder $container): Co public function prepend(ContainerBuilder $container): void { if (!$container->hasExtension('framework')) { - throw new RuntimeException(\sprintf('The "%s" bundle requires "framework" bundle.', self::ALIAS)); + throw new \RuntimeException(\sprintf('The "%s" bundle requires "framework" bundle.', self::ALIAS)); } $container->prependExtensionConfig( diff --git a/tests/Traits/PrivatePropertyTrait.php b/tests/Traits/PrivatePropertyTrait.php index 0678a6d..7654a84 100644 --- a/tests/Traits/PrivatePropertyTrait.php +++ b/tests/Traits/PrivatePropertyTrait.php @@ -4,9 +4,7 @@ namespace Sulu\Messenger\Tests\Traits; -use ReflectionClass; use ReflectionException; -use ReflectionProperty; trait PrivatePropertyTrait { @@ -15,7 +13,7 @@ trait PrivatePropertyTrait */ protected static function getPrivateProperty(object $object, string $propertyName) { - $reflection = new ReflectionClass($object); + $reflection = new \ReflectionClass($object); $propertyReflection = $reflection->getProperty($propertyName); $propertyReflection->setAccessible(true); @@ -24,7 +22,7 @@ protected static function getPrivateProperty(object $object, string $propertyNam protected static function setPrivateProperty(object $object, string $propertyName, mixed $value): void { - $reflection = new ReflectionClass($object); + $reflection = new \ReflectionClass($object); try { $propertyReflection = $reflection->getProperty($propertyName); self::setValue($propertyReflection, $object, $value); @@ -37,7 +35,7 @@ protected static function setPrivateProperty(object $object, string $propertyNam } } - private static function setValue(ReflectionProperty $propertyReflection, object $object, mixed $value): void + private static function setValue(\ReflectionProperty $propertyReflection, object $object, mixed $value): void { $propertyReflection->setAccessible(true); diff --git a/tests/Unit/Infrastructure/Symfony/Messenger/FlushMiddleware/DoctrineFlushMiddlewareTest.php b/tests/Unit/Infrastructure/Symfony/Messenger/FlushMiddleware/DoctrineFlushMiddlewareTest.php index 391c959..509ca72 100644 --- a/tests/Unit/Infrastructure/Symfony/Messenger/FlushMiddleware/DoctrineFlushMiddlewareTest.php +++ b/tests/Unit/Infrastructure/Symfony/Messenger/FlushMiddleware/DoctrineFlushMiddlewareTest.php @@ -8,7 +8,6 @@ use PHPUnit\Framework\TestCase; use Prophecy\PhpUnit\ProphecyTrait; use Prophecy\Prophecy\ObjectProphecy; -use stdClass; use Sulu\Messenger\Infrastructure\Symfony\Messenger\FlushMiddleware\DoctrineFlushMiddleware; use Sulu\Messenger\Infrastructure\Symfony\Messenger\FlushMiddleware\EnableFlushStamp; use Symfony\Component\DependencyInjection\Container; @@ -81,7 +80,7 @@ public function testGetSubscribedServices(): void private function createEnvelope(): Envelope { - return new Envelope(new stdClass()); + return new Envelope(new \stdClass()); } private function createStack(): StackMiddleware diff --git a/tests/Unit/Infrastructure/Symfony/Messenger/LockMiddleware/LockMiddlewareTest.php b/tests/Unit/Infrastructure/Symfony/Messenger/LockMiddleware/LockMiddlewareTest.php index 930ff5e..cb83a9c 100644 --- a/tests/Unit/Infrastructure/Symfony/Messenger/LockMiddleware/LockMiddlewareTest.php +++ b/tests/Unit/Infrastructure/Symfony/Messenger/LockMiddleware/LockMiddlewareTest.php @@ -8,7 +8,6 @@ use Prophecy\Argument; use Prophecy\PhpUnit\ProphecyTrait; use Prophecy\Prophecy\ObjectProphecy; -use stdClass; use Sulu\Messenger\Infrastructure\Symfony\Messenger\LockMiddleware\LockMiddleware; use Sulu\Messenger\Infrastructure\Symfony\Messenger\LockMiddleware\LockStamp; use Symfony\Component\DependencyInjection\Container; @@ -90,7 +89,7 @@ public function testGetSubscribedServices(): void private function createEnvelope(): Envelope { - return new Envelope(new stdClass()); + return new Envelope(new \stdClass()); } private function createStack(): StackMiddleware diff --git a/tests/Unit/Infrastructure/Symfony/Messenger/UnpackExceptionMiddleware/UnpackExceptionMiddlewareTest.php b/tests/Unit/Infrastructure/Symfony/Messenger/UnpackExceptionMiddleware/UnpackExceptionMiddlewareTest.php index 1f2ce21..b4f2f22 100644 --- a/tests/Unit/Infrastructure/Symfony/Messenger/UnpackExceptionMiddleware/UnpackExceptionMiddlewareTest.php +++ b/tests/Unit/Infrastructure/Symfony/Messenger/UnpackExceptionMiddleware/UnpackExceptionMiddlewareTest.php @@ -4,9 +4,7 @@ namespace Sulu\Messenger\Tests\Unit\Common\Infrastructure\Symfony\Messenger\UnpackExceptionMiddleware; -use LogicException; use PHPUnit\Framework\TestCase; -use stdClass; use Sulu\Messenger\Infrastructure\Symfony\Messenger\UnpackExceptionMiddleware\UnpackExceptionMiddleware; use Symfony\Component\Messenger\Envelope; use Symfony\Component\Messenger\Exception\HandlerFailedException; @@ -39,12 +37,12 @@ public function testHandleDefault(): void public function testHandleException(): void { - $this->expectException(LogicException::class); + $this->expectException(\LogicException::class); $this->expectExceptionMessage('Specific unpacked exception.'); $envelope = $this->createEnvelope(); $stack = $this->createStack(function () use ($envelope): never { - throw new HandlerFailedException($envelope, [new LogicException('Specific unpacked exception.')]); + throw new HandlerFailedException($envelope, [new \LogicException('Specific unpacked exception.')]); }); $this->assertSame( @@ -55,7 +53,7 @@ public function testHandleException(): void private function createEnvelope(): Envelope { - return new Envelope(new stdClass()); + return new Envelope(new \stdClass()); } private function createStack(callable $handler = null): StackMiddleware