From 995171e4703868eab945e7af9dd19c2cc750cc64 Mon Sep 17 00:00:00 2001 From: Tigrov Date: Fri, 30 May 2025 15:23:12 +0700 Subject: [PATCH 1/4] Explicitly marking parameters as nullable --- CHANGELOG.md | 2 +- composer.json | 14 +++++++------- src/CsrfHeaderMiddleware.php | 2 +- src/CsrfMiddleware.php | 2 +- src/CsrfTokenMiddleware.php | 2 +- tests/CsrfHeaderMiddlewareProcessTest.php | 2 +- tests/CsrfTokenMiddlewareProcessTest.php | 2 +- tests/DeprecatedTokenCsrfMiddlewareTest.php | 2 +- tests/MaskedCsrfTokenTest.php | 2 +- 9 files changed, 15 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 438f228..9557dfe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ## 2.2.2 under development -- no changes in this release. +- Enh #79: Explicitly marking parameters as nullable (@Tigrov) ## 2.2.1 March 05, 2025 diff --git a/composer.json b/composer.json index 01f2725..2fdad45 100644 --- a/composer.json +++ b/composer.json @@ -46,14 +46,14 @@ "yiisoft/strings": "^2.0" }, "require-dev": { - "maglnet/composer-require-checker": "^3.8 || ^4.2", + "maglnet/composer-require-checker": "^3.8 || ^4.16.1", "nyholm/psr7": "^1.8.2", - "phpunit/phpunit": "^9.6.22", - "rector/rector": "^2.0.9", - "roave/infection-static-analysis-plugin": "^1.18", - "spatie/phpunit-watcher": "^1.23.6", - "vimeo/psalm": "^4.30 || ^5.26.1 || ^6.8.8", - "yiisoft/di": "^1.1" + "phpunit/phpunit": "^9.6.23", + "rector/rector": "^2.0.16", + "roave/infection-static-analysis-plugin": "^1.37", + "spatie/phpunit-watcher": "^1.24.0", + "vimeo/psalm": "^4.30 || ^5.26.1 || ^6.12.0", + "yiisoft/di": "^1.3" }, "autoload": { "psr-4": { diff --git a/src/CsrfHeaderMiddleware.php b/src/CsrfHeaderMiddleware.php index b820594..1c91ffd 100644 --- a/src/CsrfHeaderMiddleware.php +++ b/src/CsrfHeaderMiddleware.php @@ -37,7 +37,7 @@ final class CsrfHeaderMiddleware implements MiddlewareInterface public function __construct( ResponseFactoryInterface $responseFactory, - RequestHandlerInterface $failureHandler = null + ?RequestHandlerInterface $failureHandler = null ) { $this->responseFactory = $responseFactory; $this->failureHandler = $failureHandler; diff --git a/src/CsrfMiddleware.php b/src/CsrfMiddleware.php index 038a820..ae886fe 100644 --- a/src/CsrfMiddleware.php +++ b/src/CsrfMiddleware.php @@ -42,7 +42,7 @@ final class CsrfMiddleware implements MiddlewareInterface public function __construct( ResponseFactoryInterface $responseFactory, CsrfTokenInterface $token, - RequestHandlerInterface $failureHandler = null + ?RequestHandlerInterface $failureHandler = null ) { $this->responseFactory = $responseFactory; $this->token = $token; diff --git a/src/CsrfTokenMiddleware.php b/src/CsrfTokenMiddleware.php index f55d49d..1401b11 100644 --- a/src/CsrfTokenMiddleware.php +++ b/src/CsrfTokenMiddleware.php @@ -41,7 +41,7 @@ final class CsrfTokenMiddleware implements MiddlewareInterface public function __construct( ResponseFactoryInterface $responseFactory, CsrfTokenInterface $token, - RequestHandlerInterface $failureHandler = null + ?RequestHandlerInterface $failureHandler = null ) { $this->responseFactory = $responseFactory; $this->token = $token; diff --git a/tests/CsrfHeaderMiddlewareProcessTest.php b/tests/CsrfHeaderMiddlewareProcessTest.php index 8ee926b..ccc54d6 100644 --- a/tests/CsrfHeaderMiddlewareProcessTest.php +++ b/tests/CsrfHeaderMiddlewareProcessTest.php @@ -146,7 +146,7 @@ public function handle(ServerRequestInterface $request): ResponseInterface } private function createMiddleware( - RequestHandlerInterface $failureHandler = null + ?RequestHandlerInterface $failureHandler = null ): CsrfHeaderMiddleware { return new CsrfHeaderMiddleware(new Psr17Factory(), $failureHandler); } diff --git a/tests/CsrfTokenMiddlewareProcessTest.php b/tests/CsrfTokenMiddlewareProcessTest.php index 66c8763..f11c890 100644 --- a/tests/CsrfTokenMiddlewareProcessTest.php +++ b/tests/CsrfTokenMiddlewareProcessTest.php @@ -232,7 +232,7 @@ private function getBodyRequestParamsByToken(string $token): array protected function createCsrfTokenMiddleware( ?CsrfTokenInterface $csrfToken = null, - RequestHandlerInterface $failureHandler = null + ?RequestHandlerInterface $failureHandler = null ): CsrfTokenMiddleware { $csrfToken = new MaskedCsrfToken($csrfToken ?? $this->createCsrfToken()); $this->token = $csrfToken->getValue(); diff --git a/tests/DeprecatedTokenCsrfMiddlewareTest.php b/tests/DeprecatedTokenCsrfMiddlewareTest.php index 0ccbb48..18c9117 100644 --- a/tests/DeprecatedTokenCsrfMiddlewareTest.php +++ b/tests/DeprecatedTokenCsrfMiddlewareTest.php @@ -232,7 +232,7 @@ private function getBodyRequestParamsByToken(string $token): array protected function createCsrfMiddleware( ?CsrfTokenInterface $csrfToken = null, - RequestHandlerInterface $failureHandler = null + ?RequestHandlerInterface $failureHandler = null ): CsrfMiddleware { $csrfToken = new MaskedCsrfToken($csrfToken ?? $this->createCsrfToken()); $this->token = $csrfToken->getValue(); diff --git a/tests/MaskedCsrfTokenTest.php b/tests/MaskedCsrfTokenTest.php index c794701..35361e5 100644 --- a/tests/MaskedCsrfTokenTest.php +++ b/tests/MaskedCsrfTokenTest.php @@ -19,7 +19,7 @@ public function testBase(): void $this->assertSame('test_token', TokenMask::remove($csrfToken->getValue())); } - private function createCsrfToken(string $token = null): MaskedCsrfToken + private function createCsrfToken(?string $token = null): MaskedCsrfToken { $mock = $this->createMock(MockCsrfTokenStorage::class); if ($token !== null) { From 474211455a5ab1e346eb2f60a28434c987decc97 Mon Sep 17 00:00:00 2001 From: Tigrov Date: Fri, 30 May 2025 15:29:41 +0700 Subject: [PATCH 2/4] Update composer.json --- composer.json | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/composer.json b/composer.json index 2fdad45..d9889d3 100644 --- a/composer.json +++ b/composer.json @@ -32,7 +32,7 @@ } ], "require": { - "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0", + "php": "~7.4.0 || 8.0 - 8.4", "ext-hash": "*", "psr/http-factory": "^1.0", "psr/http-factory-implementation": "1.0", @@ -46,14 +46,14 @@ "yiisoft/strings": "^2.0" }, "require-dev": { - "maglnet/composer-require-checker": "^3.8 || ^4.16.1", + "maglnet/composer-require-checker": "^3.8 || ^4.2", "nyholm/psr7": "^1.8.2", "phpunit/phpunit": "^9.6.23", "rector/rector": "^2.0.16", - "roave/infection-static-analysis-plugin": "^1.37", - "spatie/phpunit-watcher": "^1.24.0", - "vimeo/psalm": "^4.30 || ^5.26.1 || ^6.12.0", - "yiisoft/di": "^1.3" + "roave/infection-static-analysis-plugin": "^1.18", + "spatie/phpunit-watcher": "^1.23.6", + "vimeo/psalm": "^4.30 || ^5.26.1 || ^6.8.8", + "yiisoft/di": "^1.1" }, "autoload": { "psr-4": { @@ -76,7 +76,6 @@ }, "config": { "sort-packages": true, - "bump-after-update": "dev", "allow-plugins": { "infection/extension-installer": true, "composer/package-versions-deprecated": true From 369a9be09728cd05d89badd0edf643acb9a446ac Mon Sep 17 00:00:00 2001 From: Tigrov Date: Sat, 31 May 2025 11:17:07 +0700 Subject: [PATCH 3/4] Run tests on PHP 8.4 --- .github/workflows/bc.yml | 2 +- .github/workflows/mutation.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/bc.yml b/.github/workflows/bc.yml index f8cc564..0ea4a5c 100644 --- a/.github/workflows/bc.yml +++ b/.github/workflows/bc.yml @@ -30,4 +30,4 @@ jobs: os: >- ['ubuntu-latest'] php: >- - ['8.0'] + ['8.4'] diff --git a/.github/workflows/mutation.yml b/.github/workflows/mutation.yml index 8150499..a56769e 100644 --- a/.github/workflows/mutation.yml +++ b/.github/workflows/mutation.yml @@ -27,6 +27,6 @@ jobs: os: >- ['ubuntu-latest'] php: >- - ['8.2'] + ['8.4'] secrets: STRYKER_DASHBOARD_API_KEY: ${{ secrets.STRYKER_DASHBOARD_API_KEY }} From ec2b6ecfbb10bec35b1f73a9e4cc4ee36ba5a0ff Mon Sep 17 00:00:00 2001 From: Sergei Tigrov Date: Sat, 31 May 2025 11:18:12 +0700 Subject: [PATCH 4/4] Update CHANGELOG.md Co-authored-by: Sergei Predvoditelev --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9557dfe..ba33717 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ## 2.2.2 under development -- Enh #79: Explicitly marking parameters as nullable (@Tigrov) +- Bug #79: Explicitly marking parameters as nullable (@Tigrov) ## 2.2.1 March 05, 2025