Document PHP 8.3 and PHPUnit 12.5 upgrade requirements in UPGRADE-2.3.md and CHANGELOG-2.3.md

This commit is contained in:
Tomasz Kaliński 2026-06-03 10:11:46 +02:00
parent 2042d6d75a
commit ba92622fc9
2 changed files with 33 additions and 1 deletions

7
CHANGELOG-2.3.md Normal file
View file

@ -0,0 +1,7 @@
# CHANGELOG FOR `2.3.X`
## v2.3.0 (unreleased)
#### Details
- [#19034](https://github.com/Sylius/Sylius/pull/19034) Upgrade PHP requirement to `^8.3` and PHPUnit to `^12.5` ([@tomkalon](https://github.com/tomkalon))

View file

@ -54,7 +54,32 @@
The `StringInflector::nameToSlug()` method has been **deprecated** and will be removed in Sylius 3.0.
2. The `knplabs/gaufrette` and `knplabs/knp-gaufrette-bundle` packages have been removed.
2. The minimum required **PHP version** has been raised from `^8.2` to `^8.3`. ([#19034](https://github.com/Sylius/Sylius/pull/19034))
Ensure your environment runs PHP 8.3 or higher before upgrading.
3. The minimum required **PHPUnit version** has been raised from `^11.5` to `^12.5`. ([#19034](https://github.com/Sylius/Sylius/pull/19034))
If you have custom test suites extending Sylius test infrastructure, review the [PHPUnit 12 migration guide](https://docs.phpunit.de/en/12.0/migration-guide.html) for breaking changes. The key changes are:
- PHPDoc annotations (`@dataProvider`, `@test`, `@depends`) are no longer supported — use PHP attributes (`#[DataProvider]`, `#[Test]`, `#[Depends]`) instead.
- `MockBuilder::addMethods()` has been removed — use anonymous classes or interfaces instead.
- `createMock()` without expectations now triggers a PHPUnit notice — add the `#[AllowMockObjectsWithoutExpectations]` attribute to your test class to suppress it.
- `tests/Api/JsonApiTestCase.php` initialization has been moved from the constructor to `setUp()`. If you extend this class and override `__construct()`, migrate your initialization to `setUp()`:
```diff
-public function __construct(?string $name = null, array $data = [], int|string $dataName = '')
-{
- parent::__construct($name, $data, $dataName);
- // your initialization
-}
+protected function setUp(): void
+{
+ parent::setUp();
+ // your initialization
+}
```
4. The `knplabs/gaufrette` and `knplabs/knp-gaufrette-bundle` packages have been removed.
The Gaufrette integration has been unusable as a filesystem adapter.
Since Sylius 2.0 the default filesystem adapter uses Flysystem instead.