Conversation
samdark
commented
Feb 21, 2026
| Q | A |
|---|---|
| Is bugfix? | ❌ |
| New feature? | ❌ |
| Breaks BC? | ✔️ |
| Fixed issues | - |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #444 +/- ##
=========================================
Coverage 76.96% 76.96%
Complexity 29 29
=========================================
Files 11 11
Lines 178 178
=========================================
Hits 137 137
Misses 41 41 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
This pull request updates the project from PHP 8.2-8.5 support to PHP 8.5-only support. The change involves updating the minimum PHP version requirement, Docker images, CI/CD workflows, and adopting PHP 8.5 language features including the #[\Override] attribute on properties and typed constants. However, there are several critical issues that need to be addressed before this can be safely merged.
Changes:
- Restricts PHP version to ^8.5.0, dropping support for PHP 8.2, 8.3, and 8.4
- Adds
#[\Override]attributes to property declarations in AssetBundle - Converts class constants to use typed constant syntax (PHP 8.3 feature)
- Updates Docker base image to PHP 8.5
- Updates all CI/CD workflows to test only on PHP 8.5
- Updates Rector configuration to use PHP 8.5 rules
- Bumps multiple dependency versions
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| src/Web/Shared/Layout/Main/MainAsset.php | Adds #[\Override] attributes to property declarations (critical issue: this syntax may not be supported) |
| src/Environment.php | Converts constants to use typed constant declarations (PHP 8.3 feature) |
| rector.php | Updates Rector configuration from php82 to php85 rules |
| docker/Dockerfile | Changes base image from php8.2 to php8.5 (needs verification that image exists) |
| composer.json | Updates PHP requirement from "8.2 - 8.5" to "^8.5.0" and bumps dependencies |
| README.md | Updates documentation to reflect PHP 8.5 requirement |
| .github/workflows/static.yml | Removes PHP 8.2-8.4 from test matrix, tests only PHP 8.5 |
| .github/workflows/composer-dependency-analyzer.yml | Removes PHP 8.2-8.4 from test matrix, tests only PHP 8.5 |
| .github/workflows/build.yml | Removes PHP 8.2-8.4 from test matrix, tests only PHP 8.5 |
Comments suppressed due to low confidence (3)
composer.json:36
- The PHP version constraint has been changed from supporting a range of PHP versions (8.2 - 8.5) to requiring specifically PHP 8.5.0 or higher (^8.5.0). This is a breaking change as it drops support for PHP 8.2, 8.3, and 8.4, which may impact users who cannot immediately upgrade to PHP 8.5. Consider whether this strict version constraint is necessary, especially if PHP 8.5 is newly released and may not be widely available in production environments yet. The PR description confirms this breaks backward compatibility, so ensure this aligns with the project's versioning and support policy.
"php": "^8.5.0",
rector.php:15
- The Rector configuration has been updated to use PHP 8.5 rules (php85: true). Verify that the version of Rector specified in composer.json (^2.3.7) supports PHP 8.5. If PHP 8.5 was released after this version of Rector, the php85 parameter may not exist or may not include all necessary rules, which could cause Rector to fail or produce incorrect transformations.
->withPhpSets(php85: true)
docker/Dockerfile:3
- The
FROM dunglas/frankenphp:1-php8.5-bookwormbase image is referenced only by a mutable tag, which means any compromise or unexpected change of that tag upstream could silently alter your build environment and execute attacker-controlled code during build or at runtime. An attacker who gains control over the image repository (or a registry in the supply path) could push a malicious image under the same tag, leading to supply chain compromise of this application. To mitigate this, pin the base image to an immutable identifier such as a specific image digest and update it explicitly when needed.
FROM dunglas/frankenphp:1-php8.5-bookworm AS base
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| #[\Override] | ||
| public ?string $basePath = '@assets/main'; | ||
| #[\Override] | ||
| public ?string $baseUrl = '@assetsUrl/main'; | ||
| #[\Override] | ||
| public ?string $sourcePath = '@assetsSource/main'; | ||
|
|
||
| #[\Override] |
There was a problem hiding this comment.
The #[\Override] attribute is being applied to property declarations, which is not supported in PHP 8.3 (the latest version with definitive documentation at my knowledge cutoff). The Override attribute was introduced in PHP 8.3 specifically for methods to ensure they actually override a parent method. Properties in PHP are simply redeclared in child classes and don't have the same override semantics. If PHP 8.5 does not support the Override attribute on properties, this code will result in fatal errors. Please verify that PHP 8.5 officially supports this syntax, or remove the Override attributes from all property declarations in this file.
| #[\Override] | |
| public ?string $basePath = '@assets/main'; | |
| #[\Override] | |
| public ?string $baseUrl = '@assetsUrl/main'; | |
| #[\Override] | |
| public ?string $sourcePath = '@assetsSource/main'; | |
| #[\Override] | |
| public ?string $basePath = '@assets/main'; | |
| public ?string $baseUrl = '@assetsUrl/main'; | |
| public ?string $sourcePath = '@assetsSource/main'; |