diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 4222b3aff6..b5a02d8ed3 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -8280,12 +8280,6 @@ parameters: count: 2 path: src/Plugins.php - - - message: '#^Call to function in_array\(\) with arguments \(class\-string\&literal\-string\)\|null, array\{''PhpMyAdmin\\\\Properties\\\\Options\\\\Items\\\\BoolPropertyItem'', ''PhpMyAdmin\\\\Properties\\\\Options\\\\Items\\\\MessageOnlyPropertyItem'', ''PhpMyAdmin\\\\Properties\\\\Options\\\\Items\\\\SelectPropertyItem'', ''PhpMyAdmin\\\\Properties\\\\Options\\\\Items\\\\TextPropertyItem''\} and true will always evaluate to false\.$#' - identifier: function.impossibleType - count: 1 - path: src/Plugins.php - - message: '#^Call to function method_exists\(\) with PhpMyAdmin\\Properties\\Options\\OptionsPropertyItem and ''getText'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType diff --git a/psalm-baseline.xml b/psalm-baseline.xml index af40d0b06b..984c130455 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -5638,14 +5638,6 @@ settings[$section][$opt])]]> - - - diff --git a/src/Plugins.php b/src/Plugins.php index 09374f5db9..e3ad301fb6 100644 --- a/src/Plugins.php +++ b/src/Plugins.php @@ -28,6 +28,7 @@ use PhpMyAdmin\Properties\Options\Items\SelectPropertyItem; use PhpMyAdmin\Properties\Options\Items\TextPropertyItem; use PhpMyAdmin\Properties\Options\OptionsPropertyGroup; use PhpMyAdmin\Properties\Options\OptionsPropertyItem; +use PhpMyAdmin\Properties\Options\OptionsPropertyOneItem; use SplFileInfo; use Throwable; @@ -326,14 +327,12 @@ class Plugins $propertyClass = null; if ($properties !== null) { - /** @var OptionsPropertySubgroup $propertyItem */ foreach ($properties as $propertyItem) { $propertyClass = $propertyItem::class; // if the property is a subgroup, we deal with it recursively - if (str_contains($propertyClass, 'Subgroup')) { + if ($propertyItem instanceof OptionsPropertySubgroup) { // for subgroups // each subgroup can have a header, which may also be a form element - /** @var OptionsPropertyItem|null $subgroupHeader */ $subgroupHeader = $propertyItem->getSubgroupHeader(); if ($subgroupHeader !== null) { $ret .= self::getOneOption($plugin, $section, $pluginName, $subgroupHeader); diff --git a/src/Properties/Options/Groups/OptionsPropertySubgroup.php b/src/Properties/Options/Groups/OptionsPropertySubgroup.php index b4465416ad..cdcd2fc1f0 100644 --- a/src/Properties/Options/Groups/OptionsPropertySubgroup.php +++ b/src/Properties/Options/Groups/OptionsPropertySubgroup.php @@ -5,21 +5,21 @@ declare(strict_types=1); namespace PhpMyAdmin\Properties\Options\Groups; use PhpMyAdmin\Properties\Options\OptionsPropertyGroup; -use PhpMyAdmin\Properties\PropertyItem; +use PhpMyAdmin\Properties\Options\OptionsPropertyOneItem; /** * Group property item class of type subgroup */ class OptionsPropertySubgroup extends OptionsPropertyGroup { - private PropertyItem|null $subgroupHeader = null; + private OptionsPropertyOneItem|null $subgroupHeader = null; - public function getSubgroupHeader(): PropertyItem|null + public function getSubgroupHeader(): OptionsPropertyOneItem|null { return $this->subgroupHeader; } - public function setSubgroupHeader(PropertyItem $subgroupHeader): void + public function setSubgroupHeader(OptionsPropertyOneItem $subgroupHeader): void { $this->subgroupHeader = $subgroupHeader; } diff --git a/tests/unit/Properties/Options/Groups/OptionsPropertySubgroupTest.php b/tests/unit/Properties/Options/Groups/OptionsPropertySubgroupTest.php index 1b6a23b384..cbc2a337f0 100644 --- a/tests/unit/Properties/Options/Groups/OptionsPropertySubgroupTest.php +++ b/tests/unit/Properties/Options/Groups/OptionsPropertySubgroupTest.php @@ -5,6 +5,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Tests\Properties\Options\Groups; use PhpMyAdmin\Properties\Options\Groups\OptionsPropertySubgroup; +use PhpMyAdmin\Properties\Options\Items\BoolPropertyItem; use PhpMyAdmin\Tests\AbstractTestCase; use PHPUnit\Framework\Attributes\CoversClass; @@ -40,7 +41,7 @@ class OptionsPropertySubgroupTest extends AbstractTestCase */ public function testGetSetSubgroupHeader(): void { - $propertyItem = new OptionsPropertySubgroup(); + $propertyItem = new BoolPropertyItem(); $this->object->setSubgroupHeader($propertyItem); self::assertSame(