⬆️ Add PHP 8.3–8.5 compatibility - #12
Open
Olivier-poisson-soluble wants to merge 6 commits into
Open
Olivier-poisson-soluble wants to merge 6 commits into
Olivier-poisson-soluble wants to merge 6 commits into
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
Unresolved CI, package metadata, documentation, test-discovery, and fixture findings remain.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Updates the Esendex SDK for PHP 8.3–8.5 compatibility, including PHPUnit 12 and Phing 3 migrations.
Changes:
- Raises the minimum PHP version to 8.3 and updates dependencies.
- Removes deprecated PHP and cURL usage.
- Updates production code, tests, and build tooling for modern APIs.
File summaries
| File | Reviewed changes |
|---|---|
test/Esendex/Services/SurveySendServiceTests/SendWithTemplateDataTests.php |
PHPUnit 12 migration; default PHPUnit discovery issue due to Tests.php suffix (moderate, 1 vote). |
test/Esendex/Services/SurveySendServiceTests/SendWithMetadataTests.php |
PHPUnit 12 migration; default PHPUnit discovery issue due to Tests.php suffix (moderate, 1 vote). |
test/Esendex/Services/SurveySendServiceTests/SendTests.php |
PHPUnit 12 migration; default PHPUnit discovery issue due to Tests.php suffix (moderate, 1 vote). |
test/Esendex/Services/SurveyReportServiceTests/GetStandardReportWithInvalidDateRangeTypeTest.php |
PHPUnit 12 migration. |
test/Esendex/Services/SurveyReportServiceTests/GetStandardReportTest.php |
PHPUnit 12 migration. |
test/Esendex/Services/SurveyReportServiceTests/GetStandardReportForDateRangeTest.php |
PHPUnit 12 migration. |
test/Esendex/Services/SessionServiceTest.php |
PHPUnit 12 migration. |
test/Esendex/Services/SentMessagesServiceTest.php |
PHPUnit 12 migration. |
test/Esendex/Services/OptOutsServiceTest.php |
PHPUnit 12 migration. |
test/Esendex/Services/MessageInformationServiceTest.php |
PHPUnit 12 migration. |
test/Esendex/Services/MessageHeaderServiceTest.php |
PHPUnit 12 migration. |
test/Esendex/Services/MessageBodyServiceTest.php |
PHPUnit 12 migration. |
test/Esendex/Services/InboxServiceTest.php |
PHPUnit 12 migration. |
test/Esendex/Services/DispatchServiceTest.php |
PHPUnit 12 migration. |
test/Esendex/Services/CheckAccessServiceTest.php |
PHPUnit 12 migration. |
test/Esendex/Services/AccountServiceTest.php |
PHPUnit 12 migration. |
test/Esendex/Parser/SentMessagesXmlParserTest.php |
PHPUnit 12 migration. |
test/Esendex/Parser/OptOutXmlParserTest.php |
PHPUnit 12 migration and date expectations. |
test/Esendex/Parser/MessageInformationXmlParserTest.php |
Data provider and exception assertion migration. |
test/Esendex/Parser/MessageHeaderXmlParserTest.php |
PHPUnit 12 migration. |
test/Esendex/Parser/InboxXmlParserTest.php |
PHPUnit 12 migration. |
test/Esendex/Parser/DispatchXmlParserTest.php |
PHPUnit 12 migration. |
test/Esendex/Parser/AccountXmlParserTest.php |
PHPUnit 12 migration; fixture contains a stray literal a (nit, 3 votes). |
test/Esendex/Http/UriBuilderTest.php |
PHPUnit 12 attributes and process isolation. |
test/Esendex/Authentication/SessionAuthenticationTest.php |
PHPUnit 12 migration. |
test/Esendex/Authentication/LoginAuthenticationTest.php |
PHPUnit 12 migration. |
src/Esendex/SurveySendService.php |
Nullable HTTP client signature. |
src/Esendex/SurveyReportService.php |
Declared parser property and nullable signatures. |
src/Esendex/SessionService.php |
Declared HTTP client property and updated constructor type. |
src/Esendex/SentMessagesService.php |
Nullable dependency signatures. |
src/Esendex/Parser/DispatchXmlParser.php |
Updated recipient null handling. |
src/Esendex/OptOutsService.php |
Nullable dependency signatures. |
src/Esendex/Model/SentMessagesPage.php |
PHP-compatible interface signatures. |
src/Esendex/Model/InboxPage.php |
PHP-compatible interface signatures. |
src/Esendex/MessageInformationService.php |
Nullable dependency signatures. |
src/Esendex/MessageHeaderService.php |
Nullable dependency signatures. |
src/Esendex/MessageBodyService.php |
Nullable HTTP client signature. |
src/Esendex/MessageBatchesService.php |
Nullable dependency signatures. |
src/Esendex/InboxService.php |
Nullable dependency signatures. |
src/Esendex/Http/UriBuilder.php |
Nullable array parameter. |
src/Esendex/Http/HttpClient.php |
Removed obsolete cURL options and close call. |
src/Esendex/Exceptions/EsendexException.php |
Nullable exception code handling. |
src/Esendex/DispatchService.php |
Nullable dependency signatures. |
src/Esendex/CheckAccessService.php |
Nullable HTTP client signature. |
src/Esendex/AccountService.php |
Nullable dependency signatures. |
composer.lock |
Updated dependency lockfile. |
composer.json |
PHP, PHPUnit, and Phing requirements; CI matrix mismatch (critical, 1 vote), PEAR metadata mismatch (moderate, 1 vote), and outdated README requirement (nit, 1 vote). |
build.xml |
Phing 3 compatibility updates. |
Review details
Suppressed comments (5)
composer.json:19
- The compatibility bump is not propagated to the PEAR package metadata:
pear_generator.php:104still callssetPhpDep('5.3.0'). A package generated for this release would advertise PHP 5.3 support despite the SDK requiring PHP 8.3; update the generator's dependency constraint.
"php": ">=8.3",
composer.json:19
- The runtime requirement is being raised to PHP 8.3, but
README.md:8still documentsPHP >= 5.3.0. Update the public installation/runtime documentation so consumers are not told that an unsupported PHP version is valid.
"php": ">=8.3",
test/Esendex/Services/SurveySendServiceTests/SendTests.php:37
- This file is named
SendTests.php, but the build invokesvendor/bin/phpunit test/without a configuration or custom suffix. PHPUnit's default directory discovery looks for*Test.php, so this migrated test class is skipped; rename the file toSendTest.phpor configure theTests.phpsuffix.
test/Esendex/Services/SurveySendServiceTests/SendWithMetadataTests.php:37 - This file is named
SendWithMetadataTests.php, but the build invokesvendor/bin/phpunit test/without a configuration or custom suffix. PHPUnit's default directory discovery looks for*Test.php, so this migrated test class is skipped; rename the file toSendWithMetadataTest.phpor configure theTests.phpsuffix.
test/Esendex/Services/SurveySendServiceTests/SendWithTemplateDataTests.php:37 - This file is named
SendWithTemplateDataTests.php, but the build invokesvendor/bin/phpunit test/without a configuration or custom suffix. PHPUnit's default directory discovery looks for*Test.php, so this migrated test class is skipped; rename the file toSendWithTemplateDataTest.phpor configure theTests.phpsuffix.
- Files reviewed: 47/48 changed files
- Comments generated: 2
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
❓ Description :
Mise à jour du SDK Esendex à partir de la release 3.6 afin de préparer une release 3.7 compatible avec PHP 8.3, 8.4 et 8.5
Principales modifications :
CURLOPT_BINARYTRANSFERcurl_close()ArrayAccess,IteratoretCountablebuild.xml👮 Processus de test :
La compatibilité a été vérifiée sous PHP 8.3, PHP 8.4 et PHP 8.5
Commandes de validation utilisées :
composer installcomposer check-platform-reqsvendor/bin/phpunit test/vendor/bin/phing testvendor/bin/phing buildRésultat PHPUnit :
22 notices PHPUnit non bloquantes restent présentes sur certains mocks historiques
Le fonctionnement du SDK doit également être vérifié dans un projet qui l'utilise, notamment sur les appels Esendex qui remontaient auparavant des dépréciations PHP
🦺 Actions manuelles à effectuer :
Après merge de cette PR dans release/3.7 et validation, le tag 3.7 pour la release devra être créé depuis release/3.7