From 5440cad13b291eddfea4a16c0ab867e47ba365c9 Mon Sep 17 00:00:00 2001 From: Yonas Habteab Date: Tue, 22 Aug 2023 13:51:10 +0200 Subject: [PATCH 1/7] Raise phpstan level to `max` --- .github/workflows/php.yml | 11 ++++++----- phpstan.neon | 21 ++++++++++++++++++--- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml index 49a9d8b..a380cb8 100644 --- a/.github/workflows/php.yml +++ b/.github/workflows/php.yml @@ -31,11 +31,12 @@ jobs: tools: phpcs - name: Setup dependencies - run: composer require -n --no-progress overtrue/phplint - && git clone --single-branch --branch master https://github.com/Icinga/icingaweb2.git vendor/icingaweb2 - && git clone --single-branch --branch master https://github.com/Icinga/icingadb-web.git vendor/modules/icingadb-web - && git clone --single-branch --branch snapshot/nightly https://github.com/Icinga/icinga-php-library.git vendor/icinga-php-library - && git clone --single-branch --branch snapshot/nightly https://github.com/Icinga/icinga-php-thirdparty.git vendor/icinga-php-thirdparty + run: | + composer require -n --no-progress overtrue/phplint + git clone --depth 1 https://github.com/Icinga/icingaweb2.git vendor/icingaweb2 + git clone --depth 1 https://github.com/Icinga/icingadb-web.git vendor/modules/icingadb-web + git clone --depth 1 -b snapshot/nightly https://github.com/Icinga/icinga-php-library.git vendor/icinga-php-library + git clone --depth 1 -b snapshot/nightly https://github.com/Icinga/icinga-php-thirdparty.git vendor/icinga-php-thirdparty - name: PHP Lint if: success() || matrix.allow_failure diff --git a/phpstan.neon b/phpstan.neon index 40972b1..207bf18 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -1,16 +1,31 @@ parameters: - level: 1 + level: max + checkFunctionNameCase: true - checkMissingIterableValueType: true checkInternalClassCaseSensitivity: true - checkDynamicProperties: true + treatPhpDocTypesAsCertain: false + paths: - application - library + scanDirectories: - vendor + ignoreErrors: - '#Unsafe usage of new static\(\)#' + + - '#Call to an undefined method Icinga\\Module\\Cube\\Ido\\ZfSelectWrapper::joinLeft\(\)#' + + - '#Call to an undefined method Icinga\\Data\\SimpleQuery::.*#' + + - '#Call to an undefined method Icinga\\Data\\ConnectionInterface::getResource\(\)#' + + - '#Call to an undefined method Icinga\\Module\\Cube\\Ido\\IdoCube::addDimensionByName\(\)#' + + - '#Call to an undefined method Icinga\\Module\\Cube\\Cube::getSortBy\(\)#' + - '#Access to undefined constant Icinga\\Module\\Cube\\Cube::DIMENSION_SEVERITY_SORT_PARAM#' + universalObjectCratesClasses: - Icinga\Web\View - ipl\Orm\Model From 87cf99efb39886c59ff971b2ec805a40d385b3e0 Mon Sep 17 00:00:00 2001 From: Yonas Habteab Date: Tue, 22 Aug 2023 13:16:42 +0200 Subject: [PATCH 2/7] DimensionParams: Fix return type hint declaration --- library/Cube/DimensionParams.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/Cube/DimensionParams.php b/library/Cube/DimensionParams.php index 02b7ea1..90b4f7a 100644 --- a/library/Cube/DimensionParams.php +++ b/library/Cube/DimensionParams.php @@ -59,11 +59,11 @@ public function add($dimension) * * @param $dimensions * - * @return $this + * @return DimensionParams */ public static function update($dimensions) { - $self = new static(); + $self = new static(); $self->dimensions = $dimensions; return $self; From f543b57cea4d91737269d03cec80b29b904f0bb4 Mon Sep 17 00:00:00 2001 From: Yonas Habteab Date: Tue, 22 Aug 2023 13:22:04 +0200 Subject: [PATCH 3/7] Add variable type hint declarations --- library/Cube/Web/Controller.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/library/Cube/Web/Controller.php b/library/Cube/Web/Controller.php index 688d7d1..f8870db 100644 --- a/library/Cube/Web/Controller.php +++ b/library/Cube/Web/Controller.php @@ -14,6 +14,7 @@ use Icinga\Module\Icingadb\Web\Control\ProblemToggle; use Icinga\Web\View; use Icinga\Web\Widget\Tabextension\DashboardAction; +use ipl\Html\FormElement\CheckboxElement; use ipl\Html\HtmlString; use ipl\Stdlib\Filter; use ipl\Stdlib\Str; @@ -96,7 +97,9 @@ protected function renderCube(): void $problemToggle = (new ProblemToggle($problemsOnly ?: null)) ->setIdProtector([$this->getRequest(), 'protectId']) ->on(ProblemToggle::ON_SUCCESS, function (ProblemToggle $form) { - if (! $form->getElement('problems')->isChecked()) { + /** @var CheckboxElement $problems */ + $problems = $form->getElement('problems'); + if (! $problems->isChecked()) { $this->redirectNow(Url::fromRequest()->remove('problems')); } else { $this->redirectNow(Url::fromRequest()->setParam('problems')); From 95fc43397f1faf82432b9df25b951ac0c1874b51 Mon Sep 17 00:00:00 2001 From: Yonas Habteab Date: Fri, 25 Aug 2023 13:16:11 +0200 Subject: [PATCH 4/7] Implement `addDimensionByName()` in base class `IdoCube` --- library/Cube/Ido/IdoCube.php | 19 +++++++++++++++++++ library/Cube/Ido/IdoHostStatusCube.php | 18 ------------------ library/Cube/Ido/IdoServiceStatusCube.php | 19 ------------------- 3 files changed, 19 insertions(+), 37 deletions(-) diff --git a/library/Cube/Ido/IdoCube.php b/library/Cube/Ido/IdoCube.php index b9425f6..7ad609d 100644 --- a/library/Cube/Ido/IdoCube.php +++ b/library/Cube/Ido/IdoCube.php @@ -42,6 +42,25 @@ abstract class IdoCube extends DbCube public const IS_USING_ICINGADB = false; + /** + * Add a specific named dimension + * + * Right now these are just custom vars, we might support group memberships + * or other properties in future + * + * @param string $name + * + * @return $this + */ + public function addDimensionByName($name): self + { + if (count($this->filterProtectedCustomvars([$name])) === 1) { + $this->addDimension($this->createDimension($name)); + } + + return $this; + } + /** * We can steal the DB connection directly from a Monitoring backend * diff --git a/library/Cube/Ido/IdoHostStatusCube.php b/library/Cube/Ido/IdoHostStatusCube.php index 1ceaca8..3f79dc8 100644 --- a/library/Cube/Ido/IdoHostStatusCube.php +++ b/library/Cube/Ido/IdoHostStatusCube.php @@ -44,24 +44,6 @@ public function createDimension($name) return new CustomVarDimension($name, CustomVarDimension::TYPE_HOST); } - /** - * Add a specific named dimension - * - * Right now this are just custom vars, we might support group memberships - * or other properties in future - * - * @param string $name - * @return $this - */ - public function addDimensionByName($name) - { - if (count($this->filterProtectedCustomvars(array($name))) === 1) { - $this->addDimension($this->createDimension($name)); - } - - return $this; - } - /** * This returns a list of all available Dimensions * diff --git a/library/Cube/Ido/IdoServiceStatusCube.php b/library/Cube/Ido/IdoServiceStatusCube.php index ac6288a..a403645 100644 --- a/library/Cube/Ido/IdoServiceStatusCube.php +++ b/library/Cube/Ido/IdoServiceStatusCube.php @@ -84,25 +84,6 @@ public function prepareInnerQuery() return $select; } - /** - * Add a specific named dimension - * - * Right now this are just custom vars, we might support group memberships - * or other properties in future - * - * @param string $name - * - * @return $this - */ - public function addDimensionByName($name) - { - if (count($this->filterProtectedCustomvars([$name])) === 1) { - $this->addDimension($this->createDimension($name)); - } - - return $this; - } - public function createDimension($name) { $this->registerAvailableDimensions(); From 1f9ec2e858176b387bfb2d1f03049a9e961595d7 Mon Sep 17 00:00:00 2001 From: Yonas Habteab Date: Tue, 22 Aug 2023 13:51:35 +0200 Subject: [PATCH 5/7] Add phpstan `baseline`config --- phpstan-baseline.neon | 1041 +++++++++++++++++++++++++++++++++++++++++ phpstan.neon | 14 +- 2 files changed, 1044 insertions(+), 11 deletions(-) create mode 100644 phpstan-baseline.neon diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon new file mode 100644 index 0000000..44d51ed --- /dev/null +++ b/phpstan-baseline.neon @@ -0,0 +1,1041 @@ +parameters: + ignoreErrors: + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Controllers\\\\IndexController\\:\\:indexAction\\(\\) has no return type specified\\.$#" + count: 1 + path: application/controllers/IndexController.php + + - + message: "#^Cannot call method getName\\(\\) on ipl\\\\Html\\\\Contract\\\\FormSubmitElement\\|null\\.$#" + count: 1 + path: application/forms/DimensionsForm.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Forms\\\\DimensionsForm\\:\\:addDimensionButtons\\(\\) has no return type specified\\.$#" + count: 1 + path: application/forms/DimensionsForm.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Forms\\\\DimensionsForm\\:\\:addDimensionButtons\\(\\) has parameter \\$pos with no type specified\\.$#" + count: 1 + path: application/forms/DimensionsForm.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Forms\\\\DimensionsForm\\:\\:addDimensionButtons\\(\\) has parameter \\$total with no type specified\\.$#" + count: 1 + path: application/forms/DimensionsForm.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Forms\\\\DimensionsForm\\:\\:addSlice\\(\\) has no return type specified\\.$#" + count: 1 + path: application/forms/DimensionsForm.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Forms\\\\DimensionsForm\\:\\:addSlice\\(\\) has parameter \\$value with no type specified\\.$#" + count: 1 + path: application/forms/DimensionsForm.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Forms\\\\DimensionsForm\\:\\:assemble\\(\\) has no return type specified\\.$#" + count: 1 + path: application/forms/DimensionsForm.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Forms\\\\DimensionsForm\\:\\:onSuccess\\(\\) has no return type specified\\.$#" + count: 1 + path: application/forms/DimensionsForm.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Forms\\\\DimensionsForm\\:\\:setCube\\(\\) has no return type specified\\.$#" + count: 1 + path: application/forms/DimensionsForm.php + + - + message: "#^Property Icinga\\\\Module\\\\Cube\\\\Forms\\\\DimensionsForm\\:\\:\\$defaultAttributes type has no value type specified in iterable type array\\.$#" + count: 1 + path: application/forms/DimensionsForm.php + + - + message: "#^Property Icinga\\\\Module\\\\Cube\\\\Forms\\\\DimensionsForm\\:\\:\\$url \\(ipl\\\\Web\\\\Url\\) does not accept mixed\\.$#" + count: 1 + path: application/forms/DimensionsForm.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:addDimension\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:chooseFacts\\(\\) has parameter \\$facts with no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:fetchAll\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:flipPositions\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:flipPositions\\(\\) has parameter \\$array with no type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:flipPositions\\(\\) has parameter \\$pos1 with no type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:flipPositions\\(\\) has parameter \\$pos2 with no type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:getDimension\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:getDimension\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:getDimensionAfter\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:getDimensionAfter\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:getDimensionsLabel\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:getPathLabel\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:getSlices\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:getSlicesLabel\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:hasDimension\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:hasDimension\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:hasFact\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:hasFact\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:hasSlice\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:hasSlice\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:listAdditionalDimensions\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:listAvailableDimensions\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:listColumns\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:listDimensions\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:listDimensionsUpTo\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:listDimensionsUpTo\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:listFacts\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:listSlices\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:moveDimensionDown\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:moveDimensionDown\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:moveDimensionUp\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:moveDimensionUp\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:reOrderDimensions\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:reOrderDimensions\\(\\) has parameter \\$positions with no type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:registerAvailableDimensions\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:removeDimension\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:removeDimension\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:slice\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:slice\\(\\) has parameter \\$key with no type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:slice\\(\\) has parameter \\$value with no type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Property Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:\\$availableDimensions \\(array\\\\) does not accept array\\\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Property Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:\\$chosenFacts type has no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Property Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:\\$renderer has no type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Property Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:\\$slices has no type specified\\.$#" + count: 1 + path: library/Cube/Cube.php + + - + message: "#^Access to undefined constant Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:DIMENSION_SEVERITY_SORT_PARAM\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Call to an undefined method Icinga\\\\Module\\\\Cube\\\\Cube\\:\\:getSortBy\\(\\)\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:beginDimension\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:beginDimension\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:beginDimension\\(\\) has parameter \\$row with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:beginDimensionsForRow\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:beginDimensionsForRow\\(\\) has parameter \\$row with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:beginDimensionsUpFrom\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:beginDimensionsUpFrom\\(\\) has parameter \\$dimension with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:beginDimensionsUpFrom\\(\\) has parameter \\$row with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:closeDimension\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:closeDimension\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:closeDimensions\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:closeDimensionsDownTo\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:closeDimensionsDownTo\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:closeDimensionsForRow\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:closeDimensionsForRow\\(\\) has parameter \\$row with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:extractFacts\\(\\) has parameter \\$row with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:getDetailsUrl\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:getDetailsUrl\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:getDetailsUrl\\(\\) has parameter \\$row with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:getDimensionClassString\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:getDimensionClassString\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:getDimensionClassString\\(\\) has parameter \\$row with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:getDimensionClasses\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:getDimensionClasses\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:getDimensionClasses\\(\\) has parameter \\$row with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:getIndent\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:getIndent\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:getLevel\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:getLevel\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:getSliceUrl\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:getSliceUrl\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:getSliceUrl\\(\\) has parameter \\$row with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:initialize\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:isOuterDimension\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:isOuterDimension\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:render\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:renderDimensionLabel\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:renderDimensionLabel\\(\\) has parameter \\$row with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:renderFacts\\(\\) has parameter \\$facts with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:renderRow\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:renderRow\\(\\) has parameter \\$row with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:sortBySeverity\\(\\) has parameter \\$results with no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Parameter \\#1 \\$rule of static method ipl\\\\Web\\\\Filter\\\\QueryString\\:\\:render\\(\\) expects ipl\\\\Stdlib\\\\Filter\\\\Rule, ipl\\\\Stdlib\\\\Filter\\\\Rule\\|null given\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Property Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:\\$dimensionLevels type has no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Property Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:\\$dimensionOrder type has no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Property Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:\\$dimensions type has no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Property Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:\\$facts has no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Property Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:\\$reversedDimensions type has no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Property Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\:\\:\\$started has no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\\\HostStatusCubeRenderer\\:\\:getDimensionClasses\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer/HostStatusCubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\\\HostStatusCubeRenderer\\:\\:getDimensionClasses\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer/HostStatusCubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\\\HostStatusCubeRenderer\\:\\:getDimensionClasses\\(\\) has parameter \\$row with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer/HostStatusCubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\\\HostStatusCubeRenderer\\:\\:makeBadgeHtml\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer/HostStatusCubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\\\HostStatusCubeRenderer\\:\\:makeBadgeHtml\\(\\) has parameter \\$class with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer/HostStatusCubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\\\HostStatusCubeRenderer\\:\\:makeBadgeHtml\\(\\) has parameter \\$count with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer/HostStatusCubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\\\HostStatusCubeRenderer\\:\\:renderDimensionLabel\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer/HostStatusCubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\\\HostStatusCubeRenderer\\:\\:renderDimensionLabel\\(\\) has parameter \\$row with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer/HostStatusCubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\\\HostStatusCubeRenderer\\:\\:renderFacts\\(\\) has parameter \\$facts with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer/HostStatusCubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\\\ServiceStatusCubeRenderer\\:\\:getDimensionClasses\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer/ServiceStatusCubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\\\ServiceStatusCubeRenderer\\:\\:getDimensionClasses\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer/ServiceStatusCubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\\\ServiceStatusCubeRenderer\\:\\:getDimensionClasses\\(\\) has parameter \\$row with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer/ServiceStatusCubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\\\ServiceStatusCubeRenderer\\:\\:makeBadgeHtml\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer/ServiceStatusCubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\\\ServiceStatusCubeRenderer\\:\\:makeBadgeHtml\\(\\) has parameter \\$class with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer/ServiceStatusCubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\\\ServiceStatusCubeRenderer\\:\\:makeBadgeHtml\\(\\) has parameter \\$count with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer/ServiceStatusCubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\\\ServiceStatusCubeRenderer\\:\\:renderDimensionLabel\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer/ServiceStatusCubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\\\ServiceStatusCubeRenderer\\:\\:renderDimensionLabel\\(\\) has parameter \\$row with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer/ServiceStatusCubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\CubeRenderer\\\\ServiceStatusCubeRenderer\\:\\:renderFacts\\(\\) has parameter \\$facts with no type specified\\.$#" + count: 1 + path: library/Cube/CubeRenderer/ServiceStatusCubeRenderer.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\DimensionParams\\:\\:add\\(\\) has parameter \\$dimension with no type specified\\.$#" + count: 1 + path: library/Cube/DimensionParams.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\DimensionParams\\:\\:fromArray\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/DimensionParams.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\DimensionParams\\:\\:fromArray\\(\\) has parameter \\$dimensions with no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/DimensionParams.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\DimensionParams\\:\\:fromString\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/DimensionParams.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\DimensionParams\\:\\:fromString\\(\\) has parameter \\$dimensions with no type specified\\.$#" + count: 1 + path: library/Cube/DimensionParams.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\DimensionParams\\:\\:fromUrl\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/DimensionParams.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\DimensionParams\\:\\:getDimensions\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/DimensionParams.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\DimensionParams\\:\\:update\\(\\) has parameter \\$dimensions with no type specified\\.$#" + count: 1 + path: library/Cube/DimensionParams.php + + - + message: "#^Property Icinga\\\\Module\\\\Cube\\\\DimensionParams\\:\\:\\$dimensions type has no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/DimensionParams.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Hook\\\\ActionsHook\\:\\:makeUrl\\(\\) has parameter \\$params with no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/Hook/ActionsHook.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Hook\\\\IcingaDbActionsHook\\:\\:makeUrl\\(\\) has parameter \\$params with no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/Hook/IcingaDbActionsHook.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\IcingaDb\\\\CustomVariableDimension\\:\\:__construct\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: library/Cube/IcingaDb/CustomVariableDimension.php + + - + message: "#^Property Icinga\\\\Module\\\\Cube\\\\IcingaDb\\\\CustomVariableDimension\\:\\:\\$label has no type specified\\.$#" + count: 1 + path: library/Cube/IcingaDb/CustomVariableDimension.php + + - + message: "#^Property Icinga\\\\Module\\\\Cube\\\\IcingaDb\\\\CustomVariableDimension\\:\\:\\$wantNull has no type specified\\.$#" + count: 1 + path: library/Cube/IcingaDb/CustomVariableDimension.php + + - + message: "#^Cannot access property \\$customvar_flat on mixed\\.$#" + count: 2 + path: library/Cube/IcingaDb/IcingaDbCube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\IcingaDb\\\\IcingaDbCube\\:\\:fetchAll\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/IcingaDb/IcingaDbCube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\IcingaDb\\\\IcingaDbCube\\:\\:fetchHostVariableDimensions\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/IcingaDb/IcingaDbCube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\IcingaDb\\\\IcingaDbCube\\:\\:fetchServiceVariableDimensions\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/IcingaDb/IcingaDbCube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\IcingaDb\\\\IcingaDbCube\\:\\:getAvailableFactColumns\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/IcingaDb/IcingaDbCube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\IcingaDb\\\\IcingaDbCube\\:\\:getObjectsFilter\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/IcingaDb/IcingaDbCube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\IcingaDb\\\\IcingaDbCube\\:\\:getSortBy\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/IcingaDb/IcingaDbCube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\IcingaDb\\\\IcingaDbCube\\:\\:prepareFullQuery\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/IcingaDb/IcingaDbCube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\IcingaDb\\\\IcingaDbCube\\:\\:prepareRollupQuery\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/IcingaDb/IcingaDbCube.php + + - + message: "#^Parameter \\#1 \\$filter of method ipl\\\\Orm\\\\Query\\:\\:filter\\(\\) expects ipl\\\\Stdlib\\\\Filter\\\\Rule, ipl\\\\Stdlib\\\\Filter\\\\Rule\\|null given\\.$#" + count: 1 + path: library/Cube/IcingaDb/IcingaDbCube.php + + - + message: "#^Property Icinga\\\\Module\\\\Cube\\\\IcingaDb\\\\IcingaDbCube\\:\\:\\$objectsFilter has no type specified\\.$#" + count: 1 + path: library/Cube/IcingaDb/IcingaDbCube.php + + - + message: "#^Property Icinga\\\\Module\\\\Cube\\\\IcingaDb\\\\IcingaDbCube\\:\\:\\$sortBy \\(array\\) does not accept mixed\\.$#" + count: 1 + path: library/Cube/IcingaDb/IcingaDbCube.php + + - + message: "#^Property Icinga\\\\Module\\\\Cube\\\\IcingaDb\\\\IcingaDbCube\\:\\:\\$sortBy type has no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/IcingaDb/IcingaDbCube.php + + - + message: "#^Cannot access property \\$host on mixed\\.$#" + count: 1 + path: library/Cube/IcingaDb/IcingaDbHostStatusCube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\IcingaDb\\\\IcingaDbHostStatusCube\\:\\:getAvailableFactColumns\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/IcingaDb/IcingaDbHostStatusCube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\IcingaDb\\\\IcingaDbHostStatusCube\\:\\:listAvailableDimensions\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/IcingaDb/IcingaDbHostStatusCube.php + + - + message: "#^Cannot access property \\$host_name on mixed\\.$#" + count: 1 + path: library/Cube/IcingaDb/IcingaDbServiceStatusCube.php + + - + message: "#^Cannot access property \\$service_name on mixed\\.$#" + count: 1 + path: library/Cube/IcingaDb/IcingaDbServiceStatusCube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\IcingaDb\\\\IcingaDbServiceStatusCube\\:\\:getAvailableFactColumns\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/IcingaDb/IcingaDbServiceStatusCube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\IcingaDb\\\\IcingaDbServiceStatusCube\\:\\:listAvailableDimensions\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/IcingaDb/IcingaDbServiceStatusCube.php + + - + message: "#^Call to an undefined method Icinga\\\\Module\\\\Cube\\\\Ido\\\\ZfSelectWrapper\\:\\:joinLeft\\(\\)\\.$#" + count: 1 + path: library/Cube/Ido/CustomVarDimension.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Ido\\\\CustomVarDimension\\:\\:__construct\\(\\) has parameter \\$varName with no type specified\\.$#" + count: 1 + path: library/Cube/Ido/CustomVarDimension.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Ido\\\\CustomVarDimension\\:\\:safeVarname\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Ido/CustomVarDimension.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Ido\\\\CustomVarDimension\\:\\:safeVarname\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: library/Cube/Ido/CustomVarDimension.php + + - + message: "#^Property Icinga\\\\Module\\\\Cube\\\\Ido\\\\CustomVarDimension\\:\\:\\$type \\(string\\) does not accept string\\|null\\.$#" + count: 1 + path: library/Cube/Ido/CustomVarDimension.php + + - + message: "#^Call to an undefined method Icinga\\\\Data\\\\ConnectionInterface\\:\\:getResource\\(\\)\\.$#" + count: 1 + path: library/Cube/Ido/DataView/Hoststatus.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Ido\\\\DataView\\\\Hoststatus\\:\\:__construct\\(\\) has parameter \\$columns with no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/Ido/DataView/Hoststatus.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Ido\\\\DbCube\\:\\:chooseFacts\\(\\) has parameter \\$facts with no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/Ido/DbCube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Ido\\\\DbCube\\:\\:fetchAll\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/Ido/DbCube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Ido\\\\DbCube\\:\\:fetchAll\\(\\) should return array but returns array\\|null\\.$#" + count: 1 + path: library/Cube/Ido/DbCube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Ido\\\\DbCube\\:\\:getAvailableFactColumns\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/Ido/DbCube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Ido\\\\DbCube\\:\\:setDbName\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: library/Cube/Ido/DbCube.php + + - + message: "#^Property Icinga\\\\Module\\\\Cube\\\\Ido\\\\DbCube\\:\\:\\$factColumns type has no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/Ido/DbCube.php + + - + message: "#^Argument of an invalid type array\\\\|false supplied for foreach, only iterables are supported\\.$#" + count: 1 + path: library/Cube/Ido/IdoCube.php + + - + message: "#^Cannot access offset 'host'\\|'service' on array\\|stdClass\\.$#" + count: 1 + path: library/Cube/Ido/IdoCube.php + + - + message: "#^Cannot call method getDbAdapter\\(\\) on mixed\\.$#" + count: 1 + path: library/Cube/Ido/IdoCube.php + + - + message: "#^Cannot call method getRestrictions\\(\\) on Icinga\\\\User\\|null\\.$#" + count: 1 + path: library/Cube/Ido/IdoCube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Ido\\\\IdoCube\\:\\:filterProtectedCustomvars\\(\\) should return array\\ but returns array\\|false\\.$#" + count: 1 + path: library/Cube/Ido/IdoCube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Ido\\\\IdoCube\\:\\:getIdoVersion\\(\\) should return string but returns string\\|false\\|null\\.$#" + count: 1 + path: library/Cube/Ido/IdoCube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Ido\\\\IdoCube\\:\\:getMonitoringRestriction\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Ido/IdoCube.php + + - + message: "#^Parameter \\#1 \\$connection of method Icinga\\\\Module\\\\Cube\\\\Ido\\\\DbCube\\:\\:setConnection\\(\\) expects Icinga\\\\Data\\\\Db\\\\DbConnection, mixed given\\.$#" + count: 1 + path: library/Cube/Ido/IdoCube.php + + - + message: "#^Parameter \\#2 \\$subject of function preg_split expects string, mixed given\\.$#" + count: 1 + path: library/Cube/Ido/IdoCube.php + + - + message: "#^Property Icinga\\\\Module\\\\Cube\\\\Ido\\\\IdoCube\\:\\:\\$availableFacts type has no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/Ido/IdoCube.php + + - + message: "#^Property Icinga\\\\Module\\\\Cube\\\\Ido\\\\IdoCube\\:\\:\\$idoVersion \\(string\\) does not accept string\\|false\\|null\\.$#" + count: 1 + path: library/Cube/Ido/IdoCube.php + + - + message: "#^Call to an undefined method Icinga\\\\Data\\\\SimpleQuery\\:\\:getSelectQuery\\(\\)\\.$#" + count: 2 + path: library/Cube/Ido/IdoHostStatusCube.php + + - + message: "#^Call to an undefined method Icinga\\\\Data\\\\SimpleQuery\\:\\:requireColumn\\(\\)\\.$#" + count: 1 + path: library/Cube/Ido/IdoHostStatusCube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Ido\\\\IdoHostStatusCube\\:\\:getAvailableFactColumns\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/Ido/IdoHostStatusCube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Ido\\\\IdoHostStatusCube\\:\\:listAvailableDimensions\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/Ido/IdoHostStatusCube.php + + - + message: "#^Call to an undefined method Icinga\\\\Data\\\\SimpleQuery\\:\\:getSelectQuery\\(\\)\\.$#" + count: 2 + path: library/Cube/Ido/IdoServiceStatusCube.php + + - + message: "#^Call to an undefined method Icinga\\\\Data\\\\SimpleQuery\\:\\:requireColumn\\(\\)\\.$#" + count: 1 + path: library/Cube/Ido/IdoServiceStatusCube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Ido\\\\IdoServiceStatusCube\\:\\:getAvailableFactColumns\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/Ido/IdoServiceStatusCube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Ido\\\\IdoServiceStatusCube\\:\\:listAvailableDimensions\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/Ido/IdoServiceStatusCube.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Ido\\\\Query\\\\HoststatusQuery\\:\\:joinSubQuery\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/Ido/Query/HoststatusQuery.php + + - + message: "#^Property Icinga\\\\Module\\\\Cube\\\\Ido\\\\Query\\\\HoststatusQuery\\:\\:\\$subQueryTargets type has no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/Ido/Query/HoststatusQuery.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Ido\\\\ZfSelectWrapper\\:\\:__call\\(\\) has parameter \\$arguments with no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/Ido/ZfSelectWrapper.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Ido\\\\ZfSelectWrapper\\:\\:columns\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Ido/ZfSelectWrapper.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Ido\\\\ZfSelectWrapper\\:\\:columns\\(\\) has parameter \\$cols with no type specified\\.$#" + count: 1 + path: library/Cube/Ido/ZfSelectWrapper.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Ido\\\\ZfSelectWrapper\\:\\:columns\\(\\) has parameter \\$correlationName with no type specified\\.$#" + count: 1 + path: library/Cube/Ido/ZfSelectWrapper.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Ido\\\\ZfSelectWrapper\\:\\:reset\\(\\) has no return type specified\\.$#" + count: 1 + path: library/Cube/Ido/ZfSelectWrapper.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Ido\\\\ZfSelectWrapper\\:\\:reset\\(\\) has parameter \\$part with no type specified\\.$#" + count: 1 + path: library/Cube/Ido/ZfSelectWrapper.php + + - + message: "#^Parameter \\#1 \\$callback of function call_user_func_array expects callable\\(\\)\\: mixed, array\\{Zend_Db_Select, string\\} given\\.$#" + count: 1 + path: library/Cube/Ido/ZfSelectWrapper.php + + - + message: "#^Parameter \\#1 \\$rule of method ipl\\\\Stdlib\\\\Filter\\\\Chain\\:\\:add\\(\\) expects ipl\\\\Stdlib\\\\Filter\\\\Rule, ipl\\\\Stdlib\\\\Filter\\\\Rule\\|null given\\.$#" + count: 1 + path: library/Cube/ProvidedHook/Cube/IcingaDbActions.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Web\\\\Controller\\:\\:hasLegacyDimensionParams\\(\\) has parameter \\$dimensions with no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/Web/Controller.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Web\\\\Controller\\:\\:transformLegacyDimensionParamsAndRedirect\\(\\) has parameter \\$legacyDimensions with no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/Web/Controller.php + + - + message: "#^Parameter \\#2 \\$default of method Icinga\\\\Web\\\\UrlParams\\:\\:shift\\(\\) expects string\\|null, false given\\.$#" + count: 1 + path: library/Cube/Web/Controller.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Web\\\\IdoController\\:\\:hasIcingadbDimensionParams\\(\\) has parameter \\$dimensions with no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/Web/IdoController.php + + - + message: "#^Method Icinga\\\\Module\\\\Cube\\\\Web\\\\IdoController\\:\\:transformIcingadbDimensionParamsAndRedirect\\(\\) has parameter \\$icingadbDimensions with no value type specified in iterable type array\\.$#" + count: 1 + path: library/Cube/Web/IdoController.php + + - + message: "#^Parameter \\#2 \\$default of method Icinga\\\\Web\\\\UrlParams\\:\\:shift\\(\\) expects string\\|null, false given\\.$#" + count: 1 + path: library/Cube/Web/IdoController.php diff --git a/phpstan.neon b/phpstan.neon index 207bf18..c80b402 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -1,3 +1,6 @@ +includes: + - phpstan-baseline.neon + parameters: level: max @@ -15,17 +18,6 @@ parameters: ignoreErrors: - '#Unsafe usage of new static\(\)#' - - '#Call to an undefined method Icinga\\Module\\Cube\\Ido\\ZfSelectWrapper::joinLeft\(\)#' - - - '#Call to an undefined method Icinga\\Data\\SimpleQuery::.*#' - - - '#Call to an undefined method Icinga\\Data\\ConnectionInterface::getResource\(\)#' - - - '#Call to an undefined method Icinga\\Module\\Cube\\Ido\\IdoCube::addDimensionByName\(\)#' - - - '#Call to an undefined method Icinga\\Module\\Cube\\Cube::getSortBy\(\)#' - - '#Access to undefined constant Icinga\\Module\\Cube\\Cube::DIMENSION_SEVERITY_SORT_PARAM#' - universalObjectCratesClasses: - Icinga\Web\View - ipl\Orm\Model From 284c24331f4668a181e5d9ca15321c1ad0c1b03b Mon Sep 17 00:00:00 2001 From: Sukhwinder Dhillon Date: Wed, 23 Aug 2023 15:28:16 +0200 Subject: [PATCH 6/7] phpstan: Don't report errors that we do not acknowledge as errors --- phpstan.neon | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/phpstan.neon b/phpstan.neon index c80b402..82abfa0 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -16,7 +16,11 @@ parameters: - vendor ignoreErrors: - - '#Unsafe usage of new static\(\)#' + - + messages: + - '#Unsafe usage of new static\(\)#' + - '#. but return statement is missing#' + reportUnmatched: false universalObjectCratesClasses: - Icinga\Web\View From dd07905e5d36c6bd2756afab310e5d2bb67b59f0 Mon Sep 17 00:00:00 2001 From: Yonas Habteab Date: Wed, 30 Aug 2023 09:43:32 +0200 Subject: [PATCH 7/7] workflows: Do not cancel further tests if one fails --- .github/workflows/php.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml index a380cb8..87bdafb 100644 --- a/.github/workflows/php.yml +++ b/.github/workflows/php.yml @@ -39,13 +39,13 @@ jobs: git clone --depth 1 -b snapshot/nightly https://github.com/Icinga/icinga-php-thirdparty.git vendor/icinga-php-thirdparty - name: PHP Lint - if: success() || matrix.allow_failure + if: ${{ ! cancelled() }} run: ./vendor/bin/phplint -n --exclude={^vendor/.*} -- . - name: PHP CodeSniffer - if: success() || matrix.allow_failure + if: ${{ ! cancelled() }} run: phpcs -wps --colors - name: PHPStan + if: ${{ ! cancelled() }} uses: php-actions/phpstan@v3 - if: success() || matrix.allow_failure