diff --git a/libraries/classes/Dbal/MysqliResult.php b/libraries/classes/Dbal/MysqliResult.php index 8ef1deb00d..69aec39d18 100644 --- a/libraries/classes/Dbal/MysqliResult.php +++ b/libraries/classes/Dbal/MysqliResult.php @@ -13,6 +13,7 @@ use PhpMyAdmin\FieldMetadata; use Webmozart\Assert\Assert; use function array_column; +use function array_key_exists; use function is_array; use function is_bool; use function is_string; @@ -104,7 +105,11 @@ final class MysqliResult implements ResultInterface $row = $this->fetchRow(); } - return $row[$field] ?? false; + if (! array_key_exists($field, $row)) { + return false; + } + + return $row[$field]; } /** diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 37900adbab..a1d5d4a5a1 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -6910,6 +6910,11 @@ parameters: count: 1 path: libraries/classes/Plugins/Import/ImportXml.php + - + message: "#^Method PhpMyAdmin\\\\Plugins\\\\Import\\\\ShapeFileImport\\:\\:readSHP\\(\\) never returns false so it can be removed from the return type\\.$#" + count: 1 + path: libraries/classes/Plugins/Import/ShapeFileImport.php + - message: "#^Method PhpMyAdmin\\\\Plugins\\\\Import\\\\Upload\\\\UploadNoplugin\\:\\:getUploadStatus\\(\\) return type has no value type specified in iterable type array\\.$#" count: 1 @@ -11805,6 +11810,11 @@ parameters: count: 1 path: test/classes/StorageEngineTest.php + - + message: "#^Method PhpMyAdmin\\\\Tests\\\\Stubs\\\\DbiDummy\\:\\:connect\\(\\) never returns null so it can be removed from the return type\\.$#" + count: 1 + path: test/classes/Stubs/DbiDummy.php + - message: "#^Method PhpMyAdmin\\\\Tests\\\\Stubs\\\\DbiDummy\\:\\:fetchAny\\(\\) return type has no value type specified in iterable type array\\.$#" count: 1 diff --git a/phpstan.neon.dist b/phpstan.neon.dist index 0af0ffeeea..f6e4df5439 100644 --- a/phpstan.neon.dist +++ b/phpstan.neon.dist @@ -35,3 +35,4 @@ parameters: checkUninitializedProperties: true polluteScopeWithAlwaysIterableForeach: true checkDynamicProperties: true + checkTooWideReturnTypesInProtectedAndPublicMethods: true diff --git a/test/classes/Stubs/DummyResult.php b/test/classes/Stubs/DummyResult.php index e062db7b69..cf24c74cf4 100644 --- a/test/classes/Stubs/DummyResult.php +++ b/test/classes/Stubs/DummyResult.php @@ -12,6 +12,7 @@ use PhpMyAdmin\Dbal\ResultInterface; use PhpMyAdmin\FieldMetadata; use function array_column; +use function array_key_exists; use function is_string; /** @@ -103,7 +104,11 @@ class DummyResult implements ResultInterface $row = $this->fetchRow(); } - return $row[$field] ?? false; + if (! array_key_exists($field, $row)) { + return false; + } + + return $row[$field]; } /**