From 1cac235297a72323faca34f67a7fc0fcaaef3fb0 Mon Sep 17 00:00:00 2001 From: Sylvain Fabre Date: Wed, 7 Jan 2026 11:35:48 +0100 Subject: [PATCH 1/2] Add PHP 8.4 support and require PHP 8.3+ --- .github/workflows/build.yml | 2 +- composer.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 043c6ba..67ad482 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,7 +11,7 @@ jobs: strategy: fail-fast: false matrix: - php-versions: [ '8.2', '8.3' ] + php-versions: ['8.3', '8.4'] dependency-versions: [ 'highest', 'lowest' ] runs-on: ubuntu-latest steps: diff --git a/composer.json b/composer.json index c5898ca..5317506 100644 --- a/composer.json +++ b/composer.json @@ -35,7 +35,7 @@ "phpstan/phpstan-symfony": "^1.3.7" }, "require": { - "php": "^8.2", + "php": "^8.3", "symfony/cache": "^6.0|^7.0", "symfony/contracts": "^2.5|^3.4", "phpmailer/phpmailer": "^6.6", From 430de903f22968f2f556502086c62f83d04a5bd3 Mon Sep 17 00:00:00 2001 From: Sylvain Fabre Date: Wed, 7 Jan 2026 13:09:26 +0100 Subject: [PATCH 2/2] Fix PHP 8.4 implicit nullable parameter deprecations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- src/Dto/InvalidAddressDto.php | 2 +- src/Translatable/BounceReasonTranslatable.php | 2 +- src/Translatable/InvalidAddressTranslatable.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Dto/InvalidAddressDto.php b/src/Dto/InvalidAddressDto.php index f633f57..40f4f06 100644 --- a/src/Dto/InvalidAddressDto.php +++ b/src/Dto/InvalidAddressDto.php @@ -13,7 +13,7 @@ class InvalidAddressDto implements ValidationStatusDtoInterface private string $reason; private ?string $smtpResponse; - private function __construct(string $email, string $reason, string $smtpResponse = null) + private function __construct(string $email, string $reason, ?string $smtpResponse = null) { $this->email = $email; $this->reason = $reason; diff --git a/src/Translatable/BounceReasonTranslatable.php b/src/Translatable/BounceReasonTranslatable.php index 0af6ac0..8d0cbc3 100644 --- a/src/Translatable/BounceReasonTranslatable.php +++ b/src/Translatable/BounceReasonTranslatable.php @@ -24,7 +24,7 @@ public function __construct(string $reason) $this->translationKeys = $this->getTranslationKey($reason); } - public function trans(TranslatorInterface $translator, string $locale = null): string + public function trans(TranslatorInterface $translator, ?string $locale = null): string { return implode('', array_filter([ $translator->trans('bounce.reason.' . $this->translationKeys[0], [], 'assoconnect_smtp_toolbox'), diff --git a/src/Translatable/InvalidAddressTranslatable.php b/src/Translatable/InvalidAddressTranslatable.php index b0554c6..d14f23d 100644 --- a/src/Translatable/InvalidAddressTranslatable.php +++ b/src/Translatable/InvalidAddressTranslatable.php @@ -22,7 +22,7 @@ public function __construct(string $reason, string $email, string $smtpResponse) $this->smtpResponse = $smtpResponse; } - public function trans(TranslatorInterface $translator, string $locale = null): string + public function trans(TranslatorInterface $translator, ?string $locale = null): string { return $translator->trans( 'invalid_address.' . $this->reason,