From 1e133444b11bdd02fbb28f1cb8bebf357322aba3 Mon Sep 17 00:00:00 2001 From: Maciej Holyszko <14310995+falkenhawk@users.noreply.github.com> Date: Wed, 1 Apr 2026 21:29:03 +0200 Subject: [PATCH] ensure php 8.3-8.5 compatibility - fix implicit nullable parameter deprecation (php 8.4) by removing type hints from parameters with null defaults, keeping php 5.3 compat - fix dynamic property creation in Context (php 8.2+) - $mode_arguments was never matching the declared $modeArguments property - add php 8.3, 8.4, 8.5 to CI test matrix --- .github/workflows/tests.yml | 3 +++ PHPUnit/Extensions/Database/DB/DataSet.php | 6 +++++- .../Extensions/Database/DB/DefaultDatabaseConnection.php | 6 +++++- PHPUnit/Extensions/Database/DB/IDatabaseConnection.php | 2 +- PHPUnit/Extensions/Database/UI/Context.php | 4 ++-- 5 files changed, 16 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 51f16bd8..ebe9afc8 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -26,6 +26,9 @@ jobs: - "8.0" - "8.1" - "8.2" + - "8.3" + - "8.4" + - "8.5" experimental: [false] env: diff --git a/PHPUnit/Extensions/Database/DB/DataSet.php b/PHPUnit/Extensions/Database/DB/DataSet.php index ed15faa0..9565a6bb 100644 --- a/PHPUnit/Extensions/Database/DB/DataSet.php +++ b/PHPUnit/Extensions/Database/DB/DataSet.php @@ -52,8 +52,12 @@ public function __construct(PHPUnit_Extensions_Database_DB_IDatabaseConnection $ * @param PHPUnit_Extensions_Database_DataSet_ITableMetaData $tableMetaData * @return unknown */ - public static function buildTableSelect(PHPUnit_Extensions_Database_DataSet_ITableMetaData $tableMetaData, PHPUnit_Extensions_Database_DB_IDatabaseConnection $databaseConnection = NULL) + public static function buildTableSelect(PHPUnit_Extensions_Database_DataSet_ITableMetaData $tableMetaData, $databaseConnection = NULL) { + if ($databaseConnection !== NULL && !$databaseConnection instanceof PHPUnit_Extensions_Database_DB_IDatabaseConnection) { + throw PHPUnit_Util_InvalidArgumentHelper::factory(2, 'PHPUnit_Extensions_Database_DB_IDatabaseConnection'); + } + if ($tableMetaData->getTableName() == '') { $e = new Exception("Empty Table Name"); echo $e->getTraceAsString(); diff --git a/PHPUnit/Extensions/Database/DB/DefaultDatabaseConnection.php b/PHPUnit/Extensions/Database/DB/DefaultDatabaseConnection.php index 7b469d01..1bcbac85 100644 --- a/PHPUnit/Extensions/Database/DB/DefaultDatabaseConnection.php +++ b/PHPUnit/Extensions/Database/DB/DefaultDatabaseConnection.php @@ -84,8 +84,12 @@ public function getSchema() * @return PHPUnit_Extensions_Database_DataSet_IDataSet * @todo Implement the filtered data set. */ - public function createDataSet(array $tableNames = NULL) + public function createDataSet($tableNames = NULL) { + if ($tableNames !== NULL && !is_array($tableNames)) { + throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'array'); + } + if (empty($tableNames)) { return new PHPUnit_Extensions_Database_DB_DataSet($this); } else { diff --git a/PHPUnit/Extensions/Database/DB/IDatabaseConnection.php b/PHPUnit/Extensions/Database/DB/IDatabaseConnection.php index 268c1aa6..71479f30 100644 --- a/PHPUnit/Extensions/Database/DB/IDatabaseConnection.php +++ b/PHPUnit/Extensions/Database/DB/IDatabaseConnection.php @@ -35,7 +35,7 @@ public function close(); * @param array $tableNames * @return PHPUnit_Extensions_Database_DataSet_IDataSet */ - public function createDataSet(Array $tableNames = NULL); + public function createDataSet($tableNames = NULL); /** * Creates a table with the result of the specified SQL statement. diff --git a/PHPUnit/Extensions/Database/UI/Context.php b/PHPUnit/Extensions/Database/UI/Context.php index 08fdfb7d..a9d52080 100644 --- a/PHPUnit/Extensions/Database/UI/Context.php +++ b/PHPUnit/Extensions/Database/UI/Context.php @@ -52,7 +52,7 @@ public function getMode() */ public function setModeArguments(array $arguments) { - $this->mode_arguments = $arguments; + $this->modeArguments = $arguments; } /** @@ -60,7 +60,7 @@ public function setModeArguments(array $arguments) */ public function getModeArguments() { - return $this->mode_arguments; + return $this->modeArguments; } }