From a06ac46ae3bdbce558701c01e37f76f29d0eea1d Mon Sep 17 00:00:00 2001 From: Daniel Siepmann Date: Wed, 24 Nov 2021 13:36:11 +0100 Subject: [PATCH] Add PHP 8.0 to CI --- .gitlab-ci.yml | 14 ++- composer.json | 14 +-- phpstan-baseline.neon | 208 ++++++++++++++++++++++++++++++++---------- 3 files changed, 177 insertions(+), 59 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 12ed4a6..aab70f5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,7 +8,7 @@ before_script: - php -r "unlink('composer-setup.php');" test:composer: - image: php:7.4-alpine + image: php:8.0-alpine stage: test script: - composer validate --no-check-publish --strict @@ -63,12 +63,20 @@ test:phpstan:8.0: - composer install --prefer-dist --no-progress - php -d memory_limit=-1 ./vendor/bin/phpstan --no-progress -test:phpstan:7.4: +test:phpstan:7.4:11.5: image: php:7.4-alpine stage: test before_script: script: - - composer install --prefer-dist --no-progress + - composer require --no-ansi --no-interaction --no-progress typo3/cms-core:"^11.5" + - php -d memory_limit=-1 ./vendor/bin/phpstan --no-progress + +test:phpstan:7.4:10.4: + image: php:7.4-alpine + stage: test + before_script: + script: + - composer require --no-ansi --no-interaction --no-progress typo3/cms-core:"^10.4" - php -d memory_limit=-1 ./vendor/bin/phpstan --no-progress test:phpstan:7.3: diff --git a/composer.json b/composer.json index 6c0e9a3..1645ca7 100644 --- a/composer.json +++ b/composer.json @@ -10,11 +10,11 @@ } ], "require": { - "php": "~7.2.0 || ~7.3.0 || ~7.4.0", - "typo3/cms-core": "^10.4", - "typo3/cms-extbase": "^10.4", - "typo3/cms-fluid": "^10.4", - "typo3/cms-frontend": "^10.4" + "php": "~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0", + "typo3/cms-core": "^10.4 || ^11.5", + "typo3/cms-extbase": "^10.4 || ^11.5", + "typo3/cms-fluid": "^10.4 || ^11.5", + "typo3/cms-frontend": "^10.4 || ^11.5" }, "autoload": { "psr-4": { @@ -36,8 +36,8 @@ "require-dev": { "squizlabs/php_codesniffer": "^3.5", "symplify/easy-coding-standard": "^9.4", - "phpstan/phpstan": "^0.12.98", + "phpstan/phpstan": "^1.0", "phpstan/extension-installer": "^1.1", - "saschaegerer/phpstan-typo3": "^0.13.3" + "saschaegerer/phpstan-typo3": "^1.0" } } diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 89966a1..994356f 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -1,5 +1,45 @@ parameters: ignoreErrors: + - + message: "#^Cannot access offset 'considerDate' on mixed\\.$#" + count: 1 + path: Classes/Controller/DateController.php + + - + message: "#^Cannot access offset 'end' on mixed\\.$#" + count: 1 + path: Classes/Controller/DateController.php + + - + message: "#^Cannot access offset 'events_search' on mixed\\.$#" + count: 2 + path: Classes/Controller/DateController.php + + - + message: "#^Cannot access offset 'region' on mixed\\.$#" + count: 1 + path: Classes/Controller/DateController.php + + - + message: "#^Cannot access offset 'searchword' on mixed\\.$#" + count: 1 + path: Classes/Controller/DateController.php + + - + message: "#^Cannot access offset 'start' on mixed\\.$#" + count: 1 + path: Classes/Controller/DateController.php + + - + message: "#^Expression on left side of \\?\\? is not nullable\\.$#" + count: 1 + path: Classes/Controller/DateController.php + + - + message: "#^Parameter \\#1 \\$submittedValues of static method Wrm\\\\Events\\\\Domain\\\\Model\\\\Dto\\\\DateDemand\\:\\:createFromRequestValues\\(\\) expects array, mixed given\\.$#" + count: 1 + path: Classes/Controller/DateController.php + - message: "#^Cannot call method fetchAll\\(\\) on Doctrine\\\\DBAL\\\\Driver\\\\ResultStatement\\|int\\.$#" count: 1 @@ -20,6 +60,16 @@ parameters: count: 1 path: Classes/Extbase/AddSpecialProperties.php + - + message: "#^Parameter \\#1 \\$uidOfReferencedDate of method Wrm\\\\Events\\\\Extbase\\\\AddSpecialProperties\\:\\:getOriginalDate\\(\\) expects int, mixed given\\.$#" + count: 1 + path: Classes/Extbase/AddSpecialProperties.php + + - + message: "#^Cannot access offset 'uid' on mixed\\.$#" + count: 3 + path: Classes/Service/CategoryService.php + - message: "#^Cannot call method fetch\\(\\) on Doctrine\\\\DBAL\\\\Driver\\\\ResultStatement\\|int\\.$#" count: 1 @@ -30,9 +80,34 @@ parameters: count: 1 path: Classes/Service/CategoryService.php + - + message: "#^Method Wrm\\\\Events\\\\Service\\\\CategoryService\\:\\:getChildrenCategories\\(\\) should return string but returns mixed\\.$#" + count: 1 + path: Classes/Service/CategoryService.php + + - + message: "#^Parameter \\#1 \\$idList of method Wrm\\\\Events\\\\Service\\\\CategoryService\\:\\:getChildrenCategoriesRecursive\\(\\) expects string, mixed given\\.$#" + count: 1 + path: Classes/Service/CategoryService.php + - message: "#^Cannot call method fetchAll\\(\\) on Doctrine\\\\DBAL\\\\Driver\\\\ResultStatement\\|int\\.$#" - count: 3 + count: 2 + path: Classes/Service/Cleanup/Database.php + + - + message: "#^Parameter \\#1 \\$callback of function array_map expects \\(callable\\(mixed\\)\\: mixed\\)\\|null, Closure\\(array\\)\\: mixed given\\.$#" + count: 1 + path: Classes/Service/Cleanup/Database.php + + - + message: "#^Unsafe access to private constant Wrm\\\\Events\\\\Service\\\\Cleanup\\\\Database\\:\\:DATE_TABLE through static\\:\\:\\.$#" + count: 5 + path: Classes/Service/Cleanup/Database.php + + - + message: "#^Unsafe access to private constant Wrm\\\\Events\\\\Service\\\\Cleanup\\\\Database\\:\\:EVENT_TABLE through static\\:\\:\\.$#" + count: 4 path: Classes/Service/Cleanup/Database.php - @@ -56,29 +131,19 @@ parameters: path: Classes/Service/Cleanup/Files.php - - message: "#^Method Wrm\\\\Events\\\\Service\\\\Cleanup\\\\Files\\:\\:delete\\(\\) has no return typehint specified\\.$#" + message: "#^Method Wrm\\\\Events\\\\Service\\\\Cleanup\\\\Files\\:\\:deleteAll\\(\\) has no return type specified\\.$#" count: 1 path: Classes/Service/Cleanup/Files.php - - message: "#^Method Wrm\\\\Events\\\\Service\\\\Cleanup\\\\Files\\:\\:deleteAll\\(\\) has no return typehint specified\\.$#" + message: "#^Method Wrm\\\\Events\\\\Service\\\\Cleanup\\\\Files\\:\\:deleteDangling\\(\\) has no return type specified\\.$#" count: 1 path: Classes/Service/Cleanup/Files.php - - message: "#^Method Wrm\\\\Events\\\\Service\\\\Cleanup\\\\Files\\:\\:deleteDangling\\(\\) has no return typehint specified\\.$#" + message: "#^Parameter \\#1 \\$plainArray of method TYPO3\\\\CMS\\\\Core\\\\TypoScript\\\\TypoScriptService\\:\\:convertPlainArrayToTypoScriptArray\\(\\) expects array, mixed given\\.$#" count: 1 - path: Classes/Service/Cleanup/Files.php - - - - message: "#^Method Wrm\\\\Events\\\\Service\\\\Cleanup\\\\Files\\:\\:deleteFromDb\\(\\) has no return typehint specified\\.$#" - count: 1 - path: Classes/Service/Cleanup/Files.php - - - - message: "#^Method Wrm\\\\Events\\\\Service\\\\Cleanup\\\\Files\\:\\:deleteFromFal\\(\\) has no return typehint specified\\.$#" - count: 1 - path: Classes/Service/Cleanup/Files.php + path: Classes/Service/DataProcessingForModels.php - message: "#^Access to an undefined property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$sysCategoriesPid\\.$#" @@ -90,6 +155,21 @@ parameters: count: 2 path: Classes/Service/DestinationDataImportService.php + - + message: "#^Cannot access offset 'global_id' on mixed\\.$#" + count: 1 + path: Classes/Service/DestinationDataImportService.php + + - + message: "#^Cannot access offset 'items' on mixed\\.$#" + count: 1 + path: Classes/Service/DestinationDataImportService.php + + - + message: "#^Cannot access offset 'uid' on mixed\\.$#" + count: 1 + path: Classes/Service/DestinationDataImportService.php + - message: "#^Cannot call method fetch\\(\\) on Doctrine\\\\DBAL\\\\Driver\\\\ResultStatement\\|int\\.$#" count: 1 @@ -101,37 +181,42 @@ parameters: path: Classes/Service/DestinationDataImportService.php - - message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:getAttributeValue\\(\\) has no return typehint specified\\.$#" + message: "#^Cannot cast mixed to string\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:getOrCreateEvent\\(\\) has no return typehint specified\\.$#" + message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:getAttributeValue\\(\\) has no return type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:import\\(\\) has no return typehint specified\\.$#" + message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:getOrCreateEvent\\(\\) has no return type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:import\\(\\) has parameter \\$filesFolder with no typehint specified\\.$#" + message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:import\\(\\) has no return type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:import\\(\\) has parameter \\$regionUid with no typehint specified\\.$#" + message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:import\\(\\) has parameter \\$filesFolder with no type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:import\\(\\) has parameter \\$restExperience with no typehint specified\\.$#" + message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:import\\(\\) has parameter \\$regionUid with no type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:import\\(\\) has parameter \\$storagePid with no typehint specified\\.$#" + message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:import\\(\\) has parameter \\$restExperience with no type specified\\.$#" + count: 1 + path: Classes/Service/DestinationDataImportService.php + + - + message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:import\\(\\) has parameter \\$storagePid with no type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php @@ -141,57 +226,57 @@ parameters: path: Classes/Service/DestinationDataImportService.php - - message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:multi_array_key_exists\\(\\) has no return typehint specified\\.$#" + message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:multi_array_key_exists\\(\\) has no return type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:processData\\(\\) has parameter \\$data with no typehint specified\\.$#" + message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:processData\\(\\) has parameter \\$data with no type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:setAddress\\(\\) has no return typehint specified\\.$#" + message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:setAddress\\(\\) has no return type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:setAssets\\(\\) has no return typehint specified\\.$#" + message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:setAssets\\(\\) has no return type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:setCategories\\(\\) has no return typehint specified\\.$#" + message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:setCategories\\(\\) has no return type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:setDates\\(\\) has no return typehint specified\\.$#" + message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:setDates\\(\\) has no return type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:setLatLng\\(\\) has no return typehint specified\\.$#" + message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:setLatLng\\(\\) has no return type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:setOrganizer\\(\\) has no return typehint specified\\.$#" + message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:setOrganizer\\(\\) has no return type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:setSocial\\(\\) has no return typehint specified\\.$#" + message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:setSocial\\(\\) has no return type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:setTexts\\(\\) has no return typehint specified\\.$#" + message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:setTexts\\(\\) has no return type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:setTickets\\(\\) has no return typehint specified\\.$#" + message: "#^Method Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:setTickets\\(\\) has no return type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php @@ -245,6 +330,11 @@ parameters: count: 2 path: Classes/Service/DestinationDataImportService.php + - + message: "#^Parameter \\#1 \\$var of function count expects array\\|Countable, mixed given\\.$#" + count: 1 + path: Classes/Service/DestinationDataImportService.php + - message: "#^Parameter \\#2 \\$minute of method DateTime\\:\\:setTime\\(\\) expects int, string given\\.$#" count: 4 @@ -256,82 +346,102 @@ parameters: path: Classes/Service/DestinationDataImportService.php - - message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$categoriesPid has no typehint specified\\.$#" + message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$categoriesPid has no type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$categoryParentUid has no typehint specified\\.$#" + message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$categoryParentUid has no type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$environment has no typehint specified\\.$#" + message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$environment has no type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$filesFolder has no typehint specified\\.$#" + message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$filesFolder has no type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$logger has no typehint specified\\.$#" + message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$logger has no type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$regionUid has no typehint specified\\.$#" + message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$regionUid has no type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$restExperience has no typehint specified\\.$#" + message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$restExperience has no type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$restLicenseKey has no typehint specified\\.$#" + message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$restLicenseKey has no type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$restLimit has no typehint specified\\.$#" + message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$restLimit has no type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$restMode has no typehint specified\\.$#" + message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$restMode has no type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$restTemplate has no typehint specified\\.$#" + message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$restTemplate has no type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$restType has no typehint specified\\.$#" + message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$restType has no type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$restUrl has no typehint specified\\.$#" + message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$restUrl has no type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$storage has no typehint specified\\.$#" + message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$storage has no type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$storagePid has no typehint specified\\.$#" + message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$storagePid has no type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php - - message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$tmpCurrentEvent has no typehint specified\\.$#" + message: "#^Property Wrm\\\\Events\\\\Service\\\\DestinationDataImportService\\:\\:\\$tmpCurrentEvent has no type specified\\.$#" count: 1 path: Classes/Service/DestinationDataImportService.php + - + message: "#^Right side of \\|\\| is always false\\.$#" + count: 1 + path: Configuration/TCA/Overrides/sys_category.php + + - + message: "#^Right side of \\|\\| is always false\\.$#" + count: 1 + path: Configuration/TCA/Overrides/tt_content.php + + - + message: "#^Right side of \\|\\| is always false\\.$#" + count: 1 + path: Configuration/TCA/Overrides/tx_events_domain_model_event.php + + - + message: "#^Right side of \\|\\| is always false\\.$#" + count: 1 + path: Configuration/TCA/tx_events_domain_model_event.php +