From 4413dbab9296fb0f1c7ee0a3ed6efa228db59000 Mon Sep 17 00:00:00 2001 From: phpstan-bot Date: Thu, 19 Feb 2026 08:02:12 +0000 Subject: [PATCH 1/6] Add PHP 8.5 to CI build matrix Add PHP 8.5 to the lint, tests, and static-analysis job matrices in build.yml to ensure the extension is tested across all PHP versions from 7.4 through 8.5. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f8f49f83..082e2b5d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -27,6 +27,7 @@ jobs: - "8.2" - "8.3" - "8.4" + - "8.5" steps: - name: "Checkout" @@ -103,6 +104,7 @@ jobs: - "8.2" - "8.3" - "8.4" + - "8.5" dependencies: - "lowest" - "highest" @@ -218,6 +220,7 @@ jobs: - "8.2" - "8.3" - "8.4" + - "8.5" update-packages: - "" include: From b3fde2899f30610c513965060da798714c16a4f2 Mon Sep 17 00:00:00 2001 From: phpstan-bot <79867460+phpstan-bot@users.noreply.github.com> Date: Thu, 19 Feb 2026 08:23:01 +0000 Subject: [PATCH 2/6] Raise doctrine/persistence minimum to ^3.4 for PHP 8.5 compatibility MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit doctrine/persistence 3.2.x calls ReflectionProperty::setAccessible() which is deprecated in PHP 8.5. This caused 105 test failures (30 errors + 75 failures) in the Tests (8.5, lowest) CI job because PHPUnit's convertDeprecationsToExceptions setting converts the deprecation notices to exceptions. The setAccessible() call was removed in doctrine/persistence 3.4.x since it has been a no-op since PHP 8.1. Co-authored-by: Ondřej Mirtes --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index d83ad9cb..48d86084 100644 --- a/composer.json +++ b/composer.json @@ -28,7 +28,7 @@ "doctrine/lexer": "^2.0 || ^3.0", "doctrine/mongodb-odm": "^2.4.3", "doctrine/orm": "^2.16.0", - "doctrine/persistence": "^2.2.1 || ^3.2", + "doctrine/persistence": "^2.2.1 || ^3.4", "gedmo/doctrine-extensions": "^3.8", "nesbot/carbon": "^2.49", "php-parallel-lint/php-parallel-lint": "^1.2", From 09b2ab2daaf195bac5109d7215a00926ea461821 Mon Sep 17 00:00:00 2001 From: phpstan-bot <79867460+phpstan-bot@users.noreply.github.com> Date: Thu, 19 Feb 2026 08:36:38 +0000 Subject: [PATCH 3/6] Raise doctrine/persistence minimum to ^3.4.3 for PHP 8.5 compatibility MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit doctrine/persistence 3.4.0 still calls ReflectionProperty::setAccessible() in RuntimeReflectionService.php:93, which is deprecated in PHP 8.5. The previous bump to ^3.4 was insufficient because 3.4.0 still contains the call. Version 3.4.3 (used in the highest dependency build which passes) does not contain this call. Co-authored-by: Ondřej Mirtes --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 48d86084..ee222f47 100644 --- a/composer.json +++ b/composer.json @@ -28,7 +28,7 @@ "doctrine/lexer": "^2.0 || ^3.0", "doctrine/mongodb-odm": "^2.4.3", "doctrine/orm": "^2.16.0", - "doctrine/persistence": "^2.2.1 || ^3.4", + "doctrine/persistence": "^2.2.1 || ^3.4.3", "gedmo/doctrine-extensions": "^3.8", "nesbot/carbon": "^2.49", "php-parallel-lint/php-parallel-lint": "^1.2", From 71bb25567d9e46e32b51cd66e6c63a1aeb0e6ab0 Mon Sep 17 00:00:00 2001 From: phpstan-bot <79867460+phpstan-bot@users.noreply.github.com> Date: Thu, 19 Feb 2026 08:54:51 +0000 Subject: [PATCH 4/6] Conditionally bump DBAL and ORM for PHP 8.5 lowest deps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The PHP 8.5 lowest dependency build fails with 30 errors from two deprecations: 1. doctrine/dbal 3.3.8: PDO::sqliteCreateFunction() deprecated in PHP 8.5 (use Pdo\Sqlite::createFunction() instead) 2. doctrine/orm 2.16.0: null as array offset deprecated in PHP 8.5 These are fixed in newer versions (highest build passes with DBAL 3.10.4 and ORM 2.20.9). Rather than raising global minimums, use the existing update-packages matrix pattern to conditionally require PHP 8.5-compatible versions only for that PHP version's lowest build. Co-authored-by: Ondřej Mirtes --- .github/workflows/build.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 082e2b5d..20fb2b3e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -110,7 +110,13 @@ jobs: - "highest" update-packages: - "" + exclude: + - php-version: "8.5" + dependencies: "lowest" include: + - php-version: "8.5" + dependencies: "lowest" + update-packages: "composer require --dev doctrine/dbal:^3.9 doctrine/orm:^2.18 -W --no-interaction --no-progress" - php-version: "8.3" dependencies: "highest" update-packages: | From 2147a8227085bbc379a377c9dcccec9d0ecb0d4e Mon Sep 17 00:00:00 2001 From: phpstan-bot <79867460+phpstan-bot@users.noreply.github.com> Date: Thu, 19 Feb 2026 08:59:40 +0000 Subject: [PATCH 5/6] Also bump carbon-doctrine-types for PHP 8.5 lowest deps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit carbonphp/carbon-doctrine-types 1.0.0 (installed at --prefer-lowest) conflicts with doctrine/dbal ^3.9. Adding carbonphp/carbon-doctrine-types:^3 to the update-packages command resolves the conflict. Co-authored-by: Ondřej Mirtes --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 20fb2b3e..1b05cb6a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -116,7 +116,7 @@ jobs: include: - php-version: "8.5" dependencies: "lowest" - update-packages: "composer require --dev doctrine/dbal:^3.9 doctrine/orm:^2.18 -W --no-interaction --no-progress" + update-packages: "composer require --dev doctrine/dbal:^3.9 doctrine/orm:^2.18 carbonphp/carbon-doctrine-types:^3 -W --no-interaction --no-progress" - php-version: "8.3" dependencies: "highest" update-packages: | From 493dc2cfe4d1a54a1556bbbd11537371edc9cadb Mon Sep 17 00:00:00 2001 From: phpstan-bot <79867460+phpstan-bot@users.noreply.github.com> Date: Thu, 19 Feb 2026 09:04:38 +0000 Subject: [PATCH 6/6] Use composer update for PHP 8.5 lowest deps instead of composer require MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit composer require with specific version constraints fails due to conflicts between carbonphp/carbon-doctrine-types and doctrine/dbal. Instead, use composer update to selectively update only the Doctrine packages (dbal, orm) and their carbon dependencies to their highest compatible versions while keeping all other packages at their lowest. This avoids the conflict by letting composer resolve the compatible set naturally. Co-authored-by: Ondřej Mirtes --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1b05cb6a..89224fea 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -116,7 +116,7 @@ jobs: include: - php-version: "8.5" dependencies: "lowest" - update-packages: "composer require --dev doctrine/dbal:^3.9 doctrine/orm:^2.18 carbonphp/carbon-doctrine-types:^3 -W --no-interaction --no-progress" + update-packages: "composer update doctrine/dbal doctrine/orm nesbot/carbon carbonphp/carbon-doctrine-types --no-interaction --no-progress" - php-version: "8.3" dependencies: "highest" update-packages: |