Skip to content

PHP 8.5 - #9

Merged
tylersriver merged 14 commits into
mainfrom
claude/php-8.5-upgrade-rvyych
Jun 10, 2026
Merged

tylersriver merged 14 commits into
mainfrom
claude/php-8.5-upgrade-rvyych

Conversation

@tylersriver

@tylersriver tylersriver commented Jun 9, 2026

Copy link
Copy Markdown
Owner

Summary

Supersedes #2 — includes all of its feature/php82 work, then bumps the target from PHP 8.2 to PHP 8.5.

  • composer.json: php ^8.2^8.5
  • CI workflow: PHP 8.5, actions/checkout v3 → v5, dropped removed --no-suggest composer flag
  • Dev tooling upgraded for 8.5 support: Pest 2 → 4 (PHPUnit 12), PHPStan 1 → 2.2, PHP_CodeSniffer 3 → 4, PHPMD 2.15; composer.lock regenerated

Follow-on fixes required by the new tooling

  • phpstan.neon.dist: replaced options removed in PHPStan 2 (checkMissingIterableValueType, inferPrivatePropertyTypeFromConstructor) with the missingType.iterableValue ignore identifier
  • Fixed the 12 new PHPStan 2 (level max) errors with real types: typed RouteMatch::$handler, precise return shape + handler type guard in Router::parseRoute(), typed cachedRouter() options array, guard on the included route-cache file
  • Extracted Router::findDynamicKey() to keep parseRoute() under PHPMD's cyclomatic complexity threshold
  • phpunit.xml schema now tracks the installed PHPUnit version

Testing

  • CI is green on PHP 8.5.6: composer validate, parallel-lint, PHPCS, PHPStan (level max, 0 errors), PHPMD, and all 22 Pest tests (102 assertions) with coverage

https://claude.ai/code/session_01AHKGsXJZFz9XSLcJDJtdDT

tylersriver and others added 11 commits June 3, 2023 12:50
- Bump PHP requirement from ^8.2 to ^8.5 in composer.json and CI
- Upgrade dev tooling: Pest 2 -> 4, PHPStan 1 -> 2, PHPCS 3 -> 4, PHPMD 2.15
- Replace removed PHPStan 1.x config options with the
  missingType.iterableValue ignore identifier
- Add property/param types and guards to satisfy PHPStan 2 at level max
- Point phpunit.xml schema at the installed PHPUnit version
- Update workflow: checkout@v5, PHP 8.5, drop removed --no-suggest flag

https://claude.ai/code/session_01AHKGsXJZFz9XSLcJDJtdDT
PHPMD flagged parseRoute() at the cyclomatic complexity threshold of 10
after the handler type guard was added; moving the dynamic key search
into a helper brings it back under the limit.

https://claude.ai/code/session_01AHKGsXJZFz9XSLcJDJtdDT
@tylersriver tylersriver changed the title updates PHP 8.5 Jun 9, 2026
claude added 3 commits June 9, 2026 21:06
tests/tmp/ is gitignored but routesV2.php was committed before the
rule existed, so it stayed tracked.

https://claude.ai/code/session_01AHKGsXJZFz9XSLcJDJtdDT
The .phpunit.cache/ entry was appended onto the tests/tmp/ line,
breaking both ignore rules.

https://claude.ai/code/session_01AHKGsXJZFz9XSLcJDJtdDT
@tylersriver
tylersriver merged commit b1ed27f into main Jun 10, 2026
2 checks passed
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