From f4b156d3f3f707a7b552729e66b1c74bb8c2873e Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 6 Nov 2026 12:37:28 +0000 Subject: [PATCH 1/3] Add PHP 8.5 to the CI test matrix Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01AFJFMNF7ePKUHCbTcsyh5d --- .github/workflows/ci.yml | 2 +- tests/ci/matrix.json | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 97457b7..237ce2e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -60,7 +60,7 @@ jobs: strategy: fail-fast: false matrix: - php: ['8.1', '8.4'] + php: ['8.1', '8.4', '8.5'] steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: shivammathur/setup-php@eb7c497e18156a6bbabfef1d3a82760b9eda3962 # 2.40.0 diff --git a/tests/ci/matrix.json b/tests/ci/matrix.json index ee58889..18c095d 100644 --- a/tests/ci/matrix.json +++ b/tests/ci/matrix.json @@ -9,6 +9,7 @@ { "joomla": "6.1.4", "php": "8.4", "db": "postgres:17" }, { "joomla": "6.2.0", "php": "8.4", "db": "mysql:8.4" }, { "joomla": "6.2.0", "php": "8.4", "db": "mariadb:11.4" }, - { "joomla": "6.2.0", "php": "8.4", "db": "postgres:17" } + { "joomla": "6.2.0", "php": "8.4", "db": "postgres:17" }, + { "joomla": "6.2.0", "php": "8.5", "db": "mysql:8.4" } ] } From 904b31f9fac0e02cbbb0f0568fe18bfeaad180fe Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 6 Nov 2026 12:43:54 +0000 Subject: [PATCH 2/3] CI: report all PHP errors, fail on deprecations Run the test jobs with error_reporting=E_ALL (the production ini of setup-php hides E_DEPRECATED), and let PHPUnit fail on and list deprecations. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01AFJFMNF7ePKUHCbTcsyh5d --- .github/workflows/ci.yml | 3 +++ tests/phpunit.xml.dist | 2 ++ 2 files changed, 5 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 237ce2e..ab77bc8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,6 +68,7 @@ jobs: php-version: ${{ matrix.php }} tools: phpunit:11 coverage: none + ini-values: error_reporting=E_ALL - name: Check PHP syntax run: find . -name '*.php' -not -path './.git/*' -print0 | xargs -0 -n1 php -l - name: Unit tests @@ -197,6 +198,7 @@ jobs: extensions: mysqli, pdo_mysql, pgsql, pdo_pgsql, zip, mbstring, intl, gd tools: phpunit:11 coverage: none + ini-values: error_reporting=E_ALL - name: Start database (${{ matrix.db }}) env: @@ -252,6 +254,7 @@ jobs: extensions: mysqli, pdo_mysql, zip, mbstring, intl, gd tools: phpunit:11 coverage: none + ini-values: error_reporting=E_ALL - name: Start database (${{ matrix.db }}) env: DB_IMAGE: ${{ matrix.db }} diff --git a/tests/phpunit.xml.dist b/tests/phpunit.xml.dist index 4fb9f45..4fb1d09 100644 --- a/tests/phpunit.xml.dist +++ b/tests/phpunit.xml.dist @@ -6,7 +6,9 @@ cacheResult="false" failOnWarning="true" failOnRisky="true" + failOnDeprecation="true" displayDetailsOnTestsThatTriggerWarnings="true" + displayDetailsOnTestsThatTriggerDeprecations="true" displayDetailsOnSkippedTests="true"> From d046fa9bef9077c4c26ed7a1f0ca03d40ba981f7 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 6 Nov 2026 12:44:07 +0000 Subject: [PATCH 3/3] Remove curl_close() from the benchmark script A no-op since PHP 8.0 (handles are objects, freed automatically) and deprecated in PHP 8.5. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01AFJFMNF7ePKUHCbTcsyh5d --- tests/performance/bench.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/performance/bench.php b/tests/performance/bench.php index b401c4d..ddec276 100755 --- a/tests/performance/bench.php +++ b/tests/performance/bench.php @@ -74,7 +74,6 @@ function http(string $url, array $o = []): array } $r = array('id' => $id, 'status' => curl_getinfo($ch, CURLINFO_RESPONSE_CODE), 'body' => (string) $body, 'ms' => curl_getinfo($ch, CURLINFO_TOTAL_TIME) * 1000); - curl_close($ch); return $r; } @@ -117,7 +116,6 @@ function httpConcurrent(array $requests, int $concurrency): array $statuses[$code] = ($statuses[$code] ?? 0) + 1; $latencies[] = curl_getinfo($ch, CURLINFO_TOTAL_TIME) * 1000; curl_multi_remove_handle($mh, $ch); - curl_close($ch); unset($active[(int) $ch]); $done++; }