Skip to content

Comments

Drop PHP 8.2 support and add PHP 8.4/8.5 testing#119

Merged
simPod merged 4 commits intomasterfrom
claude/add-phpunit-v13-support-uEybc
Feb 10, 2026
Merged

Drop PHP 8.2 support and add PHP 8.4/8.5 testing#119
simPod merged 4 commits intomasterfrom
claude/add-phpunit-v13-support-uEybc

Conversation

@simPod
Copy link
Collaborator

@simPod simPod commented Feb 10, 2026

Summary

This pull request updates the project's PHP version requirements and CI/CD configuration to drop support for PHP 8.2 and add testing for PHP 8.4 and 8.5.

Key Changes

  • Minimum PHP version: Updated from ^8.2 to ^8.3 in composer.json
  • CI matrix: Removed PHP 8.2 from the test matrix and added PHP 8.4 and 8.5
  • Workflow PHP versions: Updated all GitHub Actions workflows (CI, coding standards, infection, and static analysis) to use PHP 8.3 as the base version
  • PHPUnit version: Updated constraint from ^11 || ^12 to ^12 || ^13 to support newer PHPUnit versions

Implementation Details

  • The lowest dependency test now runs on PHP 8.3 instead of 8.2
  • All standalone workflow jobs (coding standards, infection, static analysis) now consistently use PHP 8.3
  • The CI matrix now tests against PHP 8.3, 8.4, and 8.5 with the highest dependencies configuration

https://claude.ai/code/session_01N6BJAgbZC1FeeyzhMSoXgX

- Update phpunit/phpunit constraint from ^11 || ^12 to ^12 || ^13
- Add PHP 8.4 to CI test matrix (required by PHPUnit 13)

PHPUnit 11 no longer receives bug fixes, while PHPUnit 13 (released
Feb 2026) requires PHP 8.4+. The existing codebase is fully compatible
with v13 — no source code or config changes needed.

https://claude.ai/code/session_01N6BJAgbZC1FeeyzhMSoXgX
- Bump minimum PHP requirement from ^8.2 to ^8.3
- Update all CI workflows (ci, static-analysis, coding-standards,
  infection) from PHP 8.2 to 8.3
- Add PHP 8.5 to the CI test matrix

https://claude.ai/code/session_01N6BJAgbZC1FeeyzhMSoXgX
PHP 8.4 allows ReflectionProperty::setValue() to set readonly
properties from any scope. Update testPublicReadonlyPropertyCannotBeSet
to assert successful set on PHP 8.4+ while preserving the error
expectation for PHP 8.3.

Also disable fail-fast in CI matrix so all combinations run
independently.

https://claude.ai/code/session_01N6BJAgbZC1FeeyzhMSoXgX
setAccessible() is a no-op since PHP 8.1 and deprecated in PHP 8.5.
Remove both calls in Stub.php.

Add explicit `use const PHP_VERSION_ID` import in StubTest to satisfy
the coding standard requiring imports over fallback global names.

https://claude.ai/code/session_01N6BJAgbZC1FeeyzhMSoXgX
@codecov
Copy link

codecov bot commented Feb 10, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.09%. Comparing base (5a9d454) to head (7ba92d5).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #119      +/-   ##
==========================================
- Coverage   95.15%   95.09%   -0.06%     
==========================================
  Files           6        6              
  Lines         165      163       -2     
==========================================
- Hits          157      155       -2     
  Misses          8        8              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@simPod simPod merged commit f445a63 into master Feb 10, 2026
10 checks passed
@simPod simPod deleted the claude/add-phpunit-v13-support-uEybc branch February 10, 2026 15:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants