From f913bcd2c23cbd0a3464041927e842955b9b4651 Mon Sep 17 00:00:00 2001 From: Daniel Gohlke Date: Wed, 26 Nov 2025 20:54:17 +0100 Subject: [PATCH 1/2] [TASK] Add PHP 8.5 support Relates: #719 --- .github/workflows/ci.yaml | 10 ++++++++++ Classes/Service/TaxClassService.php | 3 ++- Documentation/guides.xml | 4 ++-- README.md | 4 ++-- Tests/Unit/Validation/Validator/EmptyValidatorTest.php | 2 +- composer.json | 2 +- ext_emconf.php | 4 ++-- shell.nix | 5 +++-- 8 files changed, 23 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 5c2a3fd9..23b27d08 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -17,6 +17,8 @@ jobs: php-version: - 8.2 - 8.3 + - 8.4 + - 8.5 steps: - name: Checkout uses: actions/checkout@v4 @@ -92,6 +94,8 @@ jobs: typo3-version: '^13.4' - php-version: '8.4' typo3-version: '^13.4' + - php-version: '8.5' + typo3-version: '^13.4' steps: - uses: actions/checkout@v4 @@ -131,6 +135,9 @@ jobs: - name: Run Unit Tests PHP8.4 run: nix-shell --arg phpVersion \"php84\" --pure --run project-test-unit + - name: Run Unit Tests PHP8.5 + run: nix-shell --arg phpVersion \"php85\" --pure --run project-test-unit + - name: Run Functional Tests PHP8.2 run: nix-shell --arg phpVersion \"php82\" --pure --run project-test-functional @@ -140,3 +147,6 @@ jobs: - name: Run Functional Tests PHP8.4 run: nix-shell --arg phpVersion \"php84\" --pure --run project-test-functional + - name: Run Functional Tests PHP8.5 + run: nix-shell --arg phpVersion \"php85\" --pure --run project-test-functional + diff --git a/Classes/Service/TaxClassService.php b/Classes/Service/TaxClassService.php index 65ff9000..a1615a45 100644 --- a/Classes/Service/TaxClassService.php +++ b/Classes/Service/TaxClassService.php @@ -39,7 +39,8 @@ public function getTaxClasses(?string $countryCode = null): array $taxClassSettings = $this->settings['taxClasses']; if ( - array_key_exists($countryCode, $taxClassSettings) + is_null($countryCode) === false + && array_key_exists($countryCode, $taxClassSettings) && is_array($taxClassSettings[$countryCode]) ) { $taxClassSettings = $taxClassSettings[$countryCode]; diff --git a/Documentation/guides.xml b/Documentation/guides.xml index 6eaa3665..11cd7650 100644 --- a/Documentation/guides.xml +++ b/Documentation/guides.xml @@ -11,8 +11,8 @@ interlink-shortcode="extcode/cart" /> diff --git a/README.md b/README.md index e381537a..aee99e82 100644 --- a/README.md +++ b/README.md @@ -50,8 +50,8 @@ Sometimes minor versions also result in minor adjustments to own templates or co | Cart | TYPO3 | PHP | Support/Development | |--------|------------|-----------|--------------------------------------| -| 11.x.x | 13.4 | 8.2 - 8.4 | Features, Bugfixes, Security Updates | -| 10.x.x | 12.4 | 8.1 - 8.4 | Bugfixes, Security Updates | +| 11.x.x | 13.4 | 8.2 - 8.5 | Features, Bugfixes, Security Updates | +| 10.x.x | 12.4 | 8.1 - 8.5 | Bugfixes, Security Updates | | 9.x.x | 12.4 | 8.1 - 8.4 | Security Updates | | 8.x.x | 10.4, 11.5 | 7.2+ | Security Updates | | 7.x.x | 10.4 | 7.2 - 7.4 | | diff --git a/Tests/Unit/Validation/Validator/EmptyValidatorTest.php b/Tests/Unit/Validation/Validator/EmptyValidatorTest.php index f86974e2..5ced1c1a 100644 --- a/Tests/Unit/Validation/Validator/EmptyValidatorTest.php +++ b/Tests/Unit/Validation/Validator/EmptyValidatorTest.php @@ -99,7 +99,7 @@ public function emptyValidatorWorksForCountableObjects(): void public function emptyValidatorWorksForEmptyCountableObjects(): void { $countableObject = new \SplObjectStorage(); - $countableObject->attach(new \stdClass()); + $countableObject->offsetSet(new \stdClass()); self::assertTrue($this->validator->validate($countableObject)->hasErrors()); } } diff --git a/composer.json b/composer.json index 2480ea8d..f55eada1 100644 --- a/composer.json +++ b/composer.json @@ -48,7 +48,7 @@ } }, "require": { - "php": "~8.2.0 || ~8.3.0 || ~8.4.0", + "php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0", "ext-json": "*", "ext-openssl": "*", "typo3/cms-core": "^13.4", diff --git a/ext_emconf.php b/ext_emconf.php index 90f83e22..ae5f0661 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -4,14 +4,14 @@ 'title' => 'Cart', 'description' => 'Shopping Cart(s) for TYPO3', 'category' => 'plugin', - 'version' => '11.5.0', + 'version' => '11.6.0', 'state' => 'stable', 'author' => 'Daniel Gohlke', 'author_email' => 'ext@extco.de', 'author_company' => 'extco.de UG (haftungsbeschränkt)', 'constraints' => [ 'depends' => [ - 'php' => '8.2.0-8.4.99', + 'php' => '8.2.0-8.5.99', 'typo3' => '13.4.0-13.4.99', 'extbase' => '13.4.0-13.4.99', 'fluid' => '13.4.0-13.4.99', diff --git a/shell.nix b/shell.nix index c0a30c3b..62da0107 100644 --- a/shell.nix +++ b/shell.nix @@ -1,10 +1,11 @@ { pkgs ? import { } + ,phpPkgs ? import (fetchTarball "https://github.com/piotrkwiecinski/nixpkgs/archive/1c614d75004b9eb1ecda6ddeb959c4f544403de5.tar.gz") {} ,phpVersion ? "php82" }: let - php = pkgs.${phpVersion}.buildEnv { + php = phpPkgs.${phpVersion}.buildEnv { extensions = { enabled, all }: enabled ++ (with all; [ xdebug ]); @@ -14,7 +15,7 @@ let memory_limit = 4G ''; }; - inherit(pkgs."${phpVersion}Packages") composer; + inherit(phpPkgs."${phpVersion}Packages") composer; projectInstall = pkgs.writeShellApplication { name = "project-install"; From 3adacb8eec4bf605e5d85129bf1304435454fb35 Mon Sep 17 00:00:00 2001 From: Daniel Gohlke Date: Tue, 20 Jan 2026 21:41:09 +0100 Subject: [PATCH 2/2] [TASK] Remove unit and functional testing with PHP 8.5 The used nixos doesn't support PHP 8.5 by default. The development branch works but need to build the PHP by itself. This takes a lot of time and resources. I will add the tests to the CI again if branch was merged. Relates: #719 --- .github/workflows/ci.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 23b27d08..d1057e85 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -135,8 +135,8 @@ jobs: - name: Run Unit Tests PHP8.4 run: nix-shell --arg phpVersion \"php84\" --pure --run project-test-unit - - name: Run Unit Tests PHP8.5 - run: nix-shell --arg phpVersion \"php85\" --pure --run project-test-unit +# - name: Run Unit Tests PHP8.5 +# run: nix-shell --arg phpVersion \"php85\" --pure --run project-test-unit - name: Run Functional Tests PHP8.2 run: nix-shell --arg phpVersion \"php82\" --pure --run project-test-functional @@ -147,6 +147,6 @@ jobs: - name: Run Functional Tests PHP8.4 run: nix-shell --arg phpVersion \"php84\" --pure --run project-test-functional - - name: Run Functional Tests PHP8.5 - run: nix-shell --arg phpVersion \"php85\" --pure --run project-test-functional +# - name: Run Functional Tests PHP8.5 +# run: nix-shell --arg phpVersion \"php85\" --pure --run project-test-functional