From acf322de98ddfec200f0b38b0d9ed9ffc74766d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Niedzielski?= Date: Sat, 13 Apr 2024 20:43:08 +0200 Subject: [PATCH] Added PHPStan (#78) --- .github/workflows/ci.yaml | 19 +- composer.json | 9 +- phpstan-baseline-7.4.neon | 11 + phpstan-baseline-8.0.neon | 11 + phpstan-baseline.neon | 1091 +++++++++++++++++ phpstan-baseline.neon.php | 19 + phpstan.neon | 13 + .../ValueDefinitionGroupRegistryEntry.php | 6 +- 8 files changed, 1168 insertions(+), 11 deletions(-) create mode 100644 phpstan-baseline-7.4.neon create mode 100644 phpstan-baseline-8.0.neon create mode 100644 phpstan-baseline.neon create mode 100644 phpstan-baseline.neon.php create mode 100644 phpstan.neon diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e099260..cc75fbb 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -10,13 +10,13 @@ on: jobs: cs_fix: name: Run code style check - runs-on: "ubuntu-20.04" + runs-on: "ubuntu-22.04" strategy: matrix: php: - - '8.0' + - '8.1' steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Setup PHP Action uses: shivammathur/setup-php@v2 @@ -26,7 +26,7 @@ jobs: extensions: 'pdo_sqlite, gd' tools: cs2pr - - uses: "ramsey/composer-install@v1" + - uses: ramsey/composer-install@v3 with: dependency-versions: "highest" @@ -35,7 +35,7 @@ jobs: tests: name: Tests - runs-on: "ubuntu-20.04" + runs-on: "ubuntu-22.04" timeout-minutes: 10 strategy: @@ -44,10 +44,10 @@ jobs: php: - '7.4' - '8.0' - - '8.1' + - '8.2' steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Setup PHP Action uses: shivammathur/setup-php@v2 @@ -57,7 +57,7 @@ jobs: extensions: pdo_sqlite, gd tools: cs2pr - - uses: "ramsey/composer-install@v1" + - uses: ramsey/composer-install@v3 with: dependency-versions: "highest" @@ -66,3 +66,6 @@ jobs: - name: Run test suite run: composer run-script --timeout=600 test + + - name: Run PHPStan analysis + run: composer run-script phpstan diff --git a/composer.json b/composer.json index 831074c..883b4c4 100644 --- a/composer.json +++ b/composer.json @@ -58,16 +58,23 @@ "ibexa/code-style": "^1.0", "phpunit/phpunit": "^8.2", "matthiasnoback/symfony-dependency-injection-test": "4.3", - "symfony/phpunit-bridge": "^5.3" + "symfony/phpunit-bridge": "^5.3", + "phpstan/phpstan": "^1.10", + "phpstan/phpstan-phpunit": "^1.3", + "phpstan/phpstan-symfony": "^1.3" }, "scripts": { "fix-cs": "php-cs-fixer fix --config=.php-cs-fixer.php -v --show-progress=dots", "check-cs": "@fix-cs --dry-run", + "phpstan": "phpstan analyse", "test": "phpunit -c phpunit.xml" }, "extra": { "branch-alias": { "dev-main": "4.5.x-dev" } + }, + "config": { + "allow-plugins": false } } diff --git a/phpstan-baseline-7.4.neon b/phpstan-baseline-7.4.neon new file mode 100644 index 0000000..23174dd --- /dev/null +++ b/phpstan-baseline-7.4.neon @@ -0,0 +1,11 @@ +parameters: + ignoreErrors: + - + message: "#^Parameter \\#1 \\$var of function count expects array\\|Countable, iterable\\ given\\.$#" + count: 2 + path: src/bundle/Controller/PasswordResetController.php + + - + message: "#^Parameter \\#1 \\$input of function array_filter expects array, iterable\\ given\\.$#" + count: 1 + path: src/lib/Form/Type/Invitation/RoleChoiceType.php diff --git a/phpstan-baseline-8.0.neon b/phpstan-baseline-8.0.neon new file mode 100644 index 0000000..3eb52dd --- /dev/null +++ b/phpstan-baseline-8.0.neon @@ -0,0 +1,11 @@ +parameters: + ignoreErrors: + - + message: "#^Parameter \\#1 \\$value of function count expects array\\|Countable, iterable\\ given\\.$#" + count: 2 + path: src/bundle/Controller/PasswordResetController.php + + - + message: "#^Parameter \\#1 \\$array of function array_filter expects array, iterable\\ given\\.$#" + count: 1 + path: src/lib/Form/Type/Invitation/RoleChoiceType.php diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon new file mode 100644 index 0000000..93f6443 --- /dev/null +++ b/phpstan-baseline.neon @@ -0,0 +1,1091 @@ +parameters: + ignoreErrors: + - + message: "#^Cannot call method fetchAll\\(\\) on Doctrine\\\\DBAL\\\\ForwardCompatibility\\\\Result\\|int\\|string\\.$#" + count: 2 + path: src/bundle/Command/AuditUserDatabaseCommand.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\Command\\\\AuditUserDatabaseCommand\\:\\:isUniqueEmailRequired\\(\\) has parameter \\$userFieldDefinitions with no value type specified in iterable type array\\.$#" + count: 1 + path: src/bundle/Command/AuditUserDatabaseCommand.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\Controller\\\\Controller\\:\\:performAccessCheck\\(\\) has no return type specified\\.$#" + count: 1 + path: src/bundle/Controller/Controller.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\Controller\\\\DefaultProfileImageController\\:\\:getInitialsColors\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/bundle/Controller/DefaultProfileImageController.php + + - + message: "#^Cannot call method getAPIUser\\(\\) on Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null\\.$#" + count: 1 + path: src/bundle/Controller/PasswordChangeController.php + + - + message: "#^Cannot call method getUser\\(\\) on Symfony\\\\Component\\\\Security\\\\Core\\\\Authentication\\\\Token\\\\TokenInterface\\|null\\.$#" + count: 1 + path: src/bundle/Controller/PasswordChangeController.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\Controller\\\\PasswordChangeController\\:\\:__construct\\(\\) has parameter \\$siteAccessGroups with no value type specified in iterable type array\\.$#" + count: 1 + path: src/bundle/Controller/PasswordChangeController.php + + - + message: "#^Property Ibexa\\\\Bundle\\\\User\\\\Controller\\\\PasswordChangeController\\:\\:\\$siteAccessGroups type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/bundle/Controller/PasswordChangeController.php + + - + message: "#^Cannot access property \\$email on Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\User\\|false\\.$#" + count: 1 + path: src/bundle/Controller/PasswordResetController.php + + - + message: "#^Parameter \\#1 \\$user of method Ibexa\\\\Bundle\\\\User\\\\Controller\\\\PasswordResetController\\:\\:updateUserToken\\(\\) expects Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\User, Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\User\\\\User\\|false given\\.$#" + count: 1 + path: src/bundle/Controller/PasswordResetController.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Form\\\\FormInterface\\:\\:getClickedButton\\(\\)\\.$#" + count: 4 + path: src/bundle/Controller/UserRegisterController.php + + - + message: "#^Cannot call method getIdentifier\\(\\) on Ibexa\\\\User\\\\UserSetting\\\\UserSettingGroup\\|null\\.$#" + count: 2 + path: src/bundle/Controller/UserSettingsController.php + + - + message: "#^Cannot call method getSettings\\(\\) on Ibexa\\\\User\\\\UserSetting\\\\UserSettingGroup\\|null\\.$#" + count: 1 + path: src/bundle/Controller/UserSettingsController.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\Controller\\\\UserSettingsController\\:\\:updateAction\\(\\) has no return type specified\\.$#" + count: 1 + path: src/bundle/Controller/UserSettingsController.php + + - + message: "#^Property Ibexa\\\\Bundle\\\\User\\\\Controller\\\\UserSettingsController\\:\\:\\$configResolver is never read, only written\\.$#" + count: 1 + path: src/bundle/Controller/UserSettingsController.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\DependencyInjection\\\\Compiler\\\\UserSetting\\\\FormMapperPass\\:\\:process\\(\\) has no return type specified\\.$#" + count: 1 + path: src/bundle/DependencyInjection/Compiler/UserSetting/FormMapperPass.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\DependencyInjection\\\\Compiler\\\\UserSetting\\\\ValueDefinitionPass\\:\\:process\\(\\) has no return type specified\\.$#" + count: 1 + path: src/bundle/DependencyInjection/Compiler/UserSetting/ValueDefinitionPass.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\DependencyInjection\\\\Configuration\\\\Parser\\\\ChangePassword\\:\\:addSemanticConfig\\(\\) has no return type specified\\.$#" + count: 1 + path: src/bundle/DependencyInjection/Configuration/Parser/ChangePassword.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\DependencyInjection\\\\Configuration\\\\Parser\\\\ChangePassword\\:\\:mapConfig\\(\\) has no return type specified\\.$#" + count: 1 + path: src/bundle/DependencyInjection/Configuration/Parser/ChangePassword.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\DependencyInjection\\\\Configuration\\\\Parser\\\\ChangePassword\\:\\:mapConfig\\(\\) has parameter \\$scopeSettings with no value type specified in iterable type array\\.$#" + count: 1 + path: src/bundle/DependencyInjection/Configuration/Parser/ChangePassword.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\DependencyInjection\\\\Configuration\\\\Parser\\\\ForgotPassword\\:\\:addSemanticConfig\\(\\) has no return type specified\\.$#" + count: 1 + path: src/bundle/DependencyInjection/Configuration/Parser/ForgotPassword.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\DependencyInjection\\\\Configuration\\\\Parser\\\\ForgotPassword\\:\\:mapConfig\\(\\) has no return type specified\\.$#" + count: 1 + path: src/bundle/DependencyInjection/Configuration/Parser/ForgotPassword.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\DependencyInjection\\\\Configuration\\\\Parser\\\\ForgotPassword\\:\\:mapConfig\\(\\) has parameter \\$scopeSettings with no value type specified in iterable type array\\.$#" + count: 1 + path: src/bundle/DependencyInjection/Configuration/Parser/ForgotPassword.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\DependencyInjection\\\\Configuration\\\\Parser\\\\Pagination\\:\\:addSemanticConfig\\(\\) has no return type specified\\.$#" + count: 1 + path: src/bundle/DependencyInjection/Configuration/Parser/Pagination.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\DependencyInjection\\\\Configuration\\\\Parser\\\\Pagination\\:\\:mapConfig\\(\\) has parameter \\$scopeSettings with no value type specified in iterable type array\\.$#" + count: 1 + path: src/bundle/DependencyInjection/Configuration/Parser/Pagination.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\DependencyInjection\\\\Configuration\\\\Parser\\\\ResetPassword\\:\\:addSemanticConfig\\(\\) has no return type specified\\.$#" + count: 1 + path: src/bundle/DependencyInjection/Configuration/Parser/ResetPassword.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\DependencyInjection\\\\Configuration\\\\Parser\\\\ResetPassword\\:\\:mapConfig\\(\\) has no return type specified\\.$#" + count: 1 + path: src/bundle/DependencyInjection/Configuration/Parser/ResetPassword.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\DependencyInjection\\\\Configuration\\\\Parser\\\\ResetPassword\\:\\:mapConfig\\(\\) has parameter \\$scopeSettings with no value type specified in iterable type array\\.$#" + count: 1 + path: src/bundle/DependencyInjection/Configuration/Parser/ResetPassword.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\DependencyInjection\\\\Configuration\\\\Parser\\\\Security\\:\\:addSemanticConfig\\(\\) has no return type specified\\.$#" + count: 1 + path: src/bundle/DependencyInjection/Configuration/Parser/Security.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\DependencyInjection\\\\Configuration\\\\Parser\\\\Security\\:\\:mapConfig\\(\\) has parameter \\$scopeSettings with no value type specified in iterable type array\\.$#" + count: 1 + path: src/bundle/DependencyInjection/Configuration/Parser/Security.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\DependencyInjection\\\\Configuration\\\\Parser\\\\UserInvitation\\:\\:addSemanticConfig\\(\\) has no return type specified\\.$#" + count: 1 + path: src/bundle/DependencyInjection/Configuration/Parser/UserInvitation.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\DependencyInjection\\\\Configuration\\\\Parser\\\\UserInvitation\\:\\:mapConfig\\(\\) has no return type specified\\.$#" + count: 1 + path: src/bundle/DependencyInjection/Configuration/Parser/UserInvitation.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\DependencyInjection\\\\Configuration\\\\Parser\\\\UserInvitation\\:\\:mapConfig\\(\\) has parameter \\$scopeSettings with no value type specified in iterable type array\\.$#" + count: 1 + path: src/bundle/DependencyInjection/Configuration/Parser/UserInvitation.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\DependencyInjection\\\\Configuration\\\\Parser\\\\UserPreferences\\:\\:mapConfig\\(\\) has parameter \\$scopeSettings with no value type specified in iterable type array\\.$#" + count: 1 + path: src/bundle/DependencyInjection/Configuration/Parser/UserPreferences.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\DependencyInjection\\\\Configuration\\\\Parser\\\\UserRegistration\\:\\:addSemanticConfig\\(\\) has no return type specified\\.$#" + count: 1 + path: src/bundle/DependencyInjection/Configuration/Parser/UserRegistration.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\DependencyInjection\\\\Configuration\\\\Parser\\\\UserRegistration\\:\\:mapConfig\\(\\) has no return type specified\\.$#" + count: 1 + path: src/bundle/DependencyInjection/Configuration/Parser/UserRegistration.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\DependencyInjection\\\\Configuration\\\\Parser\\\\UserRegistration\\:\\:mapConfig\\(\\) has parameter \\$scopeSettings with no value type specified in iterable type array\\.$#" + count: 1 + path: src/bundle/DependencyInjection/Configuration/Parser/UserRegistration.php + + - + message: "#^Method Ibexa\\\\Bundle\\\\User\\\\IbexaUserBundle\\:\\:build\\(\\) has no return type specified\\.$#" + count: 1 + path: src/bundle/IbexaUserBundle.php + + - + message: "#^Method Ibexa\\\\Contracts\\\\User\\\\Invitation\\\\Persistence\\\\Gateway\\:\\:getInvitation\\(\\) has no return type specified\\.$#" + count: 1 + path: src/contracts/Invitation/Persistence/Gateway.php + + - + message: "#^Method Ibexa\\\\Contracts\\\\User\\\\Invitation\\\\Persistence\\\\Gateway\\:\\:getInvitationByEmail\\(\\) has no return type specified\\.$#" + count: 1 + path: src/contracts/Invitation/Persistence/Gateway.php + + - + message: "#^Method Ibexa\\\\Contracts\\\\User\\\\Invitation\\\\Persistence\\\\Invitation\\:\\:__construct\\(\\) has parameter \\$limitationValue with no value type specified in iterable type array\\.$#" + count: 1 + path: src/contracts/Invitation/Persistence/Invitation.php + + - + message: "#^Method Ibexa\\\\Contracts\\\\User\\\\Invitation\\\\Persistence\\\\Invitation\\:\\:getLimitationValue\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/contracts/Invitation/Persistence/Invitation.php + + - + message: "#^Property Ibexa\\\\Contracts\\\\User\\\\Invitation\\\\Persistence\\\\Invitation\\:\\:\\$limitationValue type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/contracts/Invitation/Persistence/Invitation.php + + - + message: "#^Method Ibexa\\\\Contracts\\\\User\\\\Invitation\\\\Persistence\\\\Mapper\\:\\:extractInvitationFromRow\\(\\) has parameter \\$row with no value type specified in iterable type array\\.$#" + count: 1 + path: src/contracts/Invitation/Persistence/Mapper.php + + - + message: "#^Method Ibexa\\\\User\\\\ConfigResolver\\\\ConfigurableSudoRepositoryLoader\\:\\:__construct\\(\\) has parameter \\$params with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/ConfigResolver/ConfigurableSudoRepositoryLoader.php + + - + message: "#^Method Ibexa\\\\User\\\\ConfigResolver\\\\ConfigurableSudoRepositoryLoader\\:\\:configureOptions\\(\\) has no return type specified\\.$#" + count: 1 + path: src/lib/ConfigResolver/ConfigurableSudoRepositoryLoader.php + + - + message: "#^Method Ibexa\\\\User\\\\ConfigResolver\\\\ConfigurableSudoRepositoryLoader\\:\\:getParam\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: src/lib/ConfigResolver/ConfigurableSudoRepositoryLoader.php + + - + message: "#^Method Ibexa\\\\User\\\\ConfigResolver\\\\ConfigurableSudoRepositoryLoader\\:\\:setParam\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: src/lib/ConfigResolver/ConfigurableSudoRepositoryLoader.php + + - + message: "#^Method Ibexa\\\\User\\\\ConfigResolver\\\\ConfigurableSudoRepositoryLoader\\:\\:setParam\\(\\) has parameter \\$value with no type specified\\.$#" + count: 1 + path: src/lib/ConfigResolver/ConfigurableSudoRepositoryLoader.php + + - + message: "#^Property Ibexa\\\\User\\\\ConfigResolver\\\\ConfigurableSudoRepositoryLoader\\:\\:\\$params type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/ConfigResolver/ConfigurableSudoRepositoryLoader.php + + - + message: "#^Method Ibexa\\\\User\\\\ExceptionHandler\\\\ActionResultHandler\\:\\:error\\(\\) has parameter \\$parameters with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/ExceptionHandler/ActionResultHandler.php + + - + message: "#^Method Ibexa\\\\User\\\\ExceptionHandler\\\\ActionResultHandler\\:\\:success\\(\\) has parameter \\$parameters with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/ExceptionHandler/ActionResultHandler.php + + - + message: "#^Method Ibexa\\\\User\\\\ExceptionHandler\\\\NullActionResultHandler\\:\\:error\\(\\) has parameter \\$parameters with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/ExceptionHandler/NullActionResultHandler.php + + - + message: "#^Method Ibexa\\\\User\\\\ExceptionHandler\\\\NullActionResultHandler\\:\\:success\\(\\) has parameter \\$parameters with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/ExceptionHandler/NullActionResultHandler.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\ChoiceList\\\\Loader\\\\AvailableLocaleChoiceLoader\\:\\:getChoiceList\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/Form/ChoiceList/Loader/AvailableLocaleChoiceLoader.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\ChoiceList\\\\Loader\\\\UserGroupsChoiceLoader\\:\\:loadChoices\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/Form/ChoiceList/Loader/UserGroupsChoiceLoader.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Data\\\\UserInvitationData\\:\\:__construct\\(\\) has parameter \\$limitationValue with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/Form/Data/UserInvitationData.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Data\\\\UserInvitationData\\:\\:__construct\\(\\) has parameter \\$sections with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/Form/Data/UserInvitationData.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Data\\\\UserInvitationData\\:\\:getLimitationValue\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/Form/Data/UserInvitationData.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Data\\\\UserInvitationData\\:\\:getSections\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/Form/Data/UserInvitationData.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Data\\\\UserInvitationData\\:\\:getSiteaccess\\(\\) should return Ibexa\\\\Core\\\\MVC\\\\Symfony\\\\SiteAccess but returns Ibexa\\\\Core\\\\MVC\\\\Symfony\\\\SiteAccess\\|null\\.$#" + count: 1 + path: src/lib/Form/Data/UserInvitationData.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Data\\\\UserInvitationData\\:\\:setLimitationValue\\(\\) has parameter \\$limitationValue with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/Form/Data/UserInvitationData.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Data\\\\UserInvitationData\\:\\:setSections\\(\\) has parameter \\$sections with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/Form/Data/UserInvitationData.php + + - + message: "#^Property Ibexa\\\\User\\\\Form\\\\Data\\\\UserInvitationData\\:\\:\\$email \\(string\\) does not accept string\\|null\\.$#" + count: 1 + path: src/lib/Form/Data/UserInvitationData.php + + - + message: "#^Property Ibexa\\\\User\\\\Form\\\\Data\\\\UserInvitationData\\:\\:\\$limitationValue type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/Form/Data/UserInvitationData.php + + - + message: "#^Property Ibexa\\\\User\\\\Form\\\\Data\\\\UserPasswordChangeData\\:\\:\\$newPassword \\(string\\) does not accept string\\|null\\.$#" + count: 2 + path: src/lib/Form/Data/UserPasswordChangeData.php + + - + message: "#^Property Ibexa\\\\User\\\\Form\\\\Data\\\\UserPasswordChangeData\\:\\:\\$oldPassword \\(string\\) does not accept string\\|null\\.$#" + count: 2 + path: src/lib/Form/Data/UserPasswordChangeData.php + + - + message: "#^Property Ibexa\\\\User\\\\Form\\\\Data\\\\UserPasswordForgotData\\:\\:\\$email \\(string\\) does not accept string\\|null\\.$#" + count: 2 + path: src/lib/Form/Data/UserPasswordForgotData.php + + - + message: "#^Property Ibexa\\\\User\\\\Form\\\\Data\\\\UserPasswordForgotWithLoginData\\:\\:\\$login \\(string\\) does not accept string\\|null\\.$#" + count: 2 + path: src/lib/Form/Data/UserPasswordForgotWithLoginData.php + + - + message: "#^Property Ibexa\\\\User\\\\Form\\\\Data\\\\UserPasswordResetData\\:\\:\\$contentType \\(Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ContentType\\\\ContentType\\) does not accept Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ContentType\\\\ContentType\\|null\\.$#" + count: 1 + path: src/lib/Form/Data/UserPasswordResetData.php + + - + message: "#^Property Ibexa\\\\User\\\\Form\\\\Data\\\\UserPasswordResetData\\:\\:\\$newPassword \\(string\\) does not accept string\\|null\\.$#" + count: 2 + path: src/lib/Form/Data/UserPasswordResetData.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Data\\\\UserSettingUpdateData\\:\\:__construct\\(\\) has parameter \\$values with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/Form/Data/UserSettingUpdateData.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Data\\\\UserSettingUpdateData\\:\\:getValues\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/Form/Data/UserSettingUpdateData.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Data\\\\UserSettingUpdateData\\:\\:setValues\\(\\) has parameter \\$values with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/Form/Data/UserSettingUpdateData.php + + - + message: "#^Call to an undefined method Ibexa\\\\User\\\\ConfigResolver\\\\RegistrationContentTypeLoader\\:\\:loadGroup\\(\\)\\.$#" + count: 1 + path: src/lib/Form/DataMapper/UserRegisterMapper.php + + - + message: "#^Method Ibexa\\\\User\\\\ConfigResolver\\\\RegistrationContentTypeLoader\\:\\:loadContentType\\(\\) invoked with 1 parameter, 0 required\\.$#" + count: 1 + path: src/lib/Form/DataMapper/UserRegisterMapper.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\DataMapper\\\\UserRegisterMapper\\:\\:configureOptions\\(\\) has no return type specified\\.$#" + count: 1 + path: src/lib/Form/DataMapper/UserRegisterMapper.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\DataMapper\\\\UserRegisterMapper\\:\\:setParam\\(\\) has no return type specified\\.$#" + count: 1 + path: src/lib/Form/DataMapper/UserRegisterMapper.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\DataMapper\\\\UserRegisterMapper\\:\\:setParam\\(\\) has parameter \\$name with no type specified\\.$#" + count: 1 + path: src/lib/Form/DataMapper/UserRegisterMapper.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\DataMapper\\\\UserRegisterMapper\\:\\:setParam\\(\\) has parameter \\$value with no type specified\\.$#" + count: 1 + path: src/lib/Form/DataMapper/UserRegisterMapper.php + + - + message: "#^Property Ibexa\\\\User\\\\Form\\\\DataMapper\\\\UserRegisterMapper\\:\\:\\$params type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/Form/DataMapper/UserRegisterMapper.php + + - + message: "#^Property Ibexa\\\\User\\\\Form\\\\DataMapper\\\\UserRegisterMapper\\:\\:\\$parentGroupLoader \\(Ibexa\\\\User\\\\ConfigResolver\\\\RegistrationContentTypeLoader\\) does not accept Ibexa\\\\User\\\\ConfigResolver\\\\RegistrationGroupLoader\\.$#" + count: 1 + path: src/lib/Form/DataMapper/UserRegisterMapper.php + + - + message: "#^Cannot call method getDateFormat\\(\\) on Ibexa\\\\User\\\\UserSetting\\\\Setting\\\\Value\\\\DateTimeFormat\\|null\\.$#" + count: 1 + path: src/lib/Form/DataTransformer/DateTimeFormatTransformer.php + + - + message: "#^Cannot call method getTimeFormat\\(\\) on Ibexa\\\\User\\\\UserSetting\\\\Setting\\\\Value\\\\DateTimeFormat\\|null\\.$#" + count: 1 + path: src/lib/Form/DataTransformer/DateTimeFormatTransformer.php + + - + message: "#^Class Ibexa\\\\User\\\\Form\\\\DataTransformer\\\\DateTimeFormatTransformer implements generic interface Symfony\\\\Component\\\\Form\\\\DataTransformerInterface but does not specify its types\\: T, R$#" + count: 1 + path: src/lib/Form/DataTransformer/DateTimeFormatTransformer.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\DataTransformer\\\\DateTimeFormatTransformer\\:\\:transform\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/Form/DataTransformer/DateTimeFormatTransformer.php + + - + message: "#^Class Ibexa\\\\User\\\\Form\\\\DataTransformer\\\\InvitationTransformer implements generic interface Symfony\\\\Component\\\\Form\\\\DataTransformerInterface but does not specify its types\\: T, R$#" + count: 1 + path: src/lib/Form/DataTransformer/InvitationTransformer.php + + - + message: "#^Class Ibexa\\\\User\\\\Form\\\\DataTransformer\\\\LimitationValueTransformer implements generic interface Symfony\\\\Component\\\\Form\\\\DataTransformerInterface but does not specify its types\\: T, R$#" + count: 1 + path: src/lib/Form/DataTransformer/LimitationValueTransformer.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\DataTransformer\\\\LimitationValueTransformer\\:\\:transform\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/Form/DataTransformer/LimitationValueTransformer.php + + - + message: "#^Parameter \\#2 \\$array of function array_map expects array, array\\|null given\\.$#" + count: 1 + path: src/lib/Form/DataTransformer/LimitationValueTransformer.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and Ibexa\\\\User\\\\Form\\\\Data\\\\UserInvitationData will always evaluate to false\\.$#" + count: 1 + path: src/lib/Form/DataTransformer/LimitationValueTransformer.php + + - + message: "#^Cannot call method getContentType\\(\\) on Ibexa\\\\User\\\\Form\\\\Data\\\\UserPasswordResetData\\|null\\.$#" + count: 1 + path: src/lib/Form/Factory/FormFactory.php + + - + message: "#^Parameter \\#1 \\$name of method Symfony\\\\Component\\\\Form\\\\FormFactoryInterface\\:\\:createNamed\\(\\) expects string, string\\|null given\\.$#" + count: 5 + path: src/lib/Form/Factory/FormFactory.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Processor\\\\UserRegisterFormProcessor\\:\\:createUser\\(\\) has parameter \\$languageCode with no type specified\\.$#" + count: 1 + path: src/lib/Form/Processor/UserRegisterFormProcessor.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Processor\\\\UserRegisterFormProcessor\\:\\:processRegister\\(\\) has no return type specified\\.$#" + count: 1 + path: src/lib/Form/Processor/UserRegisterFormProcessor.php + + - + message: "#^Property Ibexa\\\\User\\\\Form\\\\Processor\\\\UserRegisterFormProcessor\\:\\:\\$repository \\(Ibexa\\\\Core\\\\Repository\\\\Repository\\) does not accept Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Repository\\.$#" + count: 1 + path: src/lib/Form/Processor/UserRegisterFormProcessor.php + + - + message: "#^Variable \\$data in PHPDoc tag @var does not exist\\.$#" + count: 1 + path: src/lib/Form/Processor/UserRegisterFormProcessor.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Type\\\\Invitation\\\\InvitationType\\:\\:buildForm\\(\\) has no return type specified\\.$#" + count: 1 + path: src/lib/Form/Type/Invitation/InvitationType.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Type\\\\Invitation\\\\RoleChoiceType\\:\\:loadFilteredRoles\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/Form/Type/Invitation/RoleChoiceType.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Type\\\\Invitation\\\\UserGroupChoiceType\\:\\:loadFilteredGroups\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/Form/Type/Invitation/UserGroupChoiceType.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Type\\\\Invitation\\\\UserInvitationType\\:\\:buildForm\\(\\) has no return type specified\\.$#" + count: 1 + path: src/lib/Form/Type/Invitation/UserInvitationType.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Type\\\\Invitation\\\\UserInvitationType\\:\\:configureOptions\\(\\) has no return type specified\\.$#" + count: 1 + path: src/lib/Form/Type/Invitation/UserInvitationType.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Type\\\\UserPasswordChangeType\\:\\:buildForm\\(\\) has no return type specified\\.$#" + count: 1 + path: src/lib/Form/Type/UserPasswordChangeType.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Type\\\\UserPasswordForgotType\\:\\:buildForm\\(\\) has no return type specified\\.$#" + count: 1 + path: src/lib/Form/Type/UserPasswordForgotType.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Type\\\\UserPasswordForgotType\\:\\:configureOptions\\(\\) has no return type specified\\.$#" + count: 1 + path: src/lib/Form/Type/UserPasswordForgotType.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Type\\\\UserPasswordForgotWithLoginType\\:\\:buildForm\\(\\) has no return type specified\\.$#" + count: 1 + path: src/lib/Form/Type/UserPasswordForgotWithLoginType.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Type\\\\UserPasswordForgotWithLoginType\\:\\:configureOptions\\(\\) has no return type specified\\.$#" + count: 1 + path: src/lib/Form/Type/UserPasswordForgotWithLoginType.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Type\\\\UserPasswordResetType\\:\\:buildForm\\(\\) has no return type specified\\.$#" + count: 1 + path: src/lib/Form/Type/UserPasswordResetType.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Type\\\\UserRegisterType\\:\\:buildForm\\(\\) has no return type specified\\.$#" + count: 1 + path: src/lib/Form/Type/UserRegisterType.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Type\\\\UserRegisterType\\:\\:configureOptions\\(\\) has no return type specified\\.$#" + count: 1 + path: src/lib/Form/Type/UserRegisterType.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Type\\\\UserRegisterType\\:\\:getName\\(\\) has no return type specified\\.$#" + count: 1 + path: src/lib/Form/Type/UserRegisterType.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Type\\\\UserSettingUpdateType\\:\\:buildForm\\(\\) has no return type specified\\.$#" + count: 1 + path: src/lib/Form/Type/UserSettingUpdateType.php + + - + message: "#^Method Ibexa\\\\User\\\\Form\\\\Type\\\\UserSettingUpdateType\\:\\:configureOptions\\(\\) has no return type specified\\.$#" + count: 1 + path: src/lib/Form/Type/UserSettingUpdateType.php + + - + message: "#^Method Ibexa\\\\User\\\\Invitation\\\\DomainMapper\\:\\:mapRoleLimitation\\(\\) has parameter \\$values with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/Invitation/DomainMapper.php + + - + message: "#^Parameter \\#2 \\$values of method Ibexa\\\\User\\\\Invitation\\\\DomainMapper\\:\\:mapRoleLimitation\\(\\) expects array, array\\|null given\\.$#" + count: 1 + path: src/lib/Invitation/DomainMapper.php + + - + message: "#^Parameter \\#1 \\$length of function random_bytes expects int\\<1, max\\>, int given\\.$#" + count: 1 + path: src/lib/Invitation/InvitationHashGenerator.php + + - + message: "#^Call to an undefined method DateTimeInterface\\:\\:add\\(\\)\\.$#" + count: 1 + path: src/lib/Invitation/InvitationService.php + + - + message: "#^Cannot access property \\$name on Ibexa\\\\Core\\\\MVC\\\\Symfony\\\\SiteAccess\\|null\\.$#" + count: 1 + path: src/lib/Invitation/InvitationService.php + + - + message: "#^If condition is always true\\.$#" + count: 1 + path: src/lib/Invitation/InvitationService.php + + - + message: "#^Cannot call method fetchAllAssociative\\(\\) on Doctrine\\\\DBAL\\\\ForwardCompatibility\\\\Result\\|int\\|string\\.$#" + count: 2 + path: src/lib/Invitation/Persistence/DoctrineGateway.php + + - + message: "#^Cannot call method fetchAssociative\\(\\) on Doctrine\\\\DBAL\\\\ForwardCompatibility\\\\Result\\|int\\|string\\.$#" + count: 2 + path: src/lib/Invitation/Persistence/DoctrineGateway.php + + - + message: "#^Cannot call method fetchOne\\(\\) on Doctrine\\\\DBAL\\\\ForwardCompatibility\\\\Result\\|int\\|string\\.$#" + count: 1 + path: src/lib/Invitation/Persistence/DoctrineGateway.php + + - + message: "#^Method Ibexa\\\\User\\\\Invitation\\\\Persistence\\\\DoctrineGateway\\:\\:findInvitations\\(\\) should return array\\ but returns array\\\\>\\.$#" + count: 2 + path: src/lib/Invitation/Persistence/DoctrineGateway.php + + - + message: "#^Method Ibexa\\\\User\\\\Invitation\\\\Persistence\\\\DoctrineGateway\\:\\:getInvitation\\(\\) has no return type specified\\.$#" + count: 1 + path: src/lib/Invitation/Persistence/DoctrineGateway.php + + - + message: "#^Method Ibexa\\\\User\\\\Invitation\\\\Persistence\\\\DoctrineGateway\\:\\:getInvitationByEmail\\(\\) has no return type specified\\.$#" + count: 1 + path: src/lib/Invitation/Persistence/DoctrineGateway.php + + - + message: "#^Parameter \\#1 \\$select of method Doctrine\\\\DBAL\\\\Query\\\\QueryBuilder\\:\\:select\\(\\) expects array\\\\|string\\|null, int given\\.$#" + count: 1 + path: src/lib/Invitation/Persistence/DoctrineGateway.php + + - + message: "#^Method Ibexa\\\\User\\\\Invitation\\\\Persistence\\\\Mapper\\:\\:extractInvitationFromRow\\(\\) has parameter \\$row with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/Invitation/Persistence/Mapper.php + + - + message: "#^Method Ibexa\\\\User\\\\Pagination\\\\Pagerfanta\\\\UserSettingsAdapter\\:\\:getSlice\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/Pagination/Pagerfanta/UserSettingsAdapter.php + + - + message: "#^Method Ibexa\\\\User\\\\Permission\\\\InvitationPolicyProvider\\:\\:addPolicies\\(\\) has no return type specified\\.$#" + count: 1 + path: src/lib/Permission/InvitationPolicyProvider.php + + - + message: "#^Method Ibexa\\\\User\\\\Permission\\\\UserPermissionsLimitationType\\:\\:acceptValue\\(\\) has no return type specified\\.$#" + count: 1 + path: src/lib/Permission/UserPermissionsLimitationType.php + + - + message: "#^Method Ibexa\\\\User\\\\Permission\\\\UserPermissionsLimitationType\\:\\:evaluate\\(\\) should return bool but returns null\\.$#" + count: 1 + path: src/lib/Permission/UserPermissionsLimitationType.php + + - + message: "#^Method Ibexa\\\\User\\\\Strategy\\\\DefaultThumbnailStrategy\\:\\:__construct\\(\\) has parameter \\$initialsFieldDefIdentifiers with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/Strategy/DefaultThumbnailStrategy.php + + - + message: "#^Method Ibexa\\\\User\\\\Strategy\\\\DefaultThumbnailStrategy\\:\\:getInitials\\(\\) has parameter \\$fields with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/Strategy/DefaultThumbnailStrategy.php + + - + message: "#^Method Ibexa\\\\User\\\\Strategy\\\\DefaultThumbnailStrategy\\:\\:getThumbnail\\(\\) has parameter \\$fields with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/Strategy/DefaultThumbnailStrategy.php + + - + message: "#^Property Ibexa\\\\User\\\\Templating\\\\Twig\\\\DateTimeExtension\\:\\:\\$dateTimeFormatSerializer is never read, only written\\.$#" + count: 1 + path: src/lib/Templating/Twig/DateTimeExtension.php + + - + message: "#^Method Ibexa\\\\User\\\\UserSetting\\\\DateTimeFormat\\\\Formatter\\:\\:format\\(\\) should return string but returns bool\\|string\\.$#" + count: 1 + path: src/lib/UserSetting/DateTimeFormat/Formatter.php + + - + message: "#^Cannot call method getDateFormat\\(\\) on Ibexa\\\\User\\\\UserSetting\\\\Setting\\\\Value\\\\DateTimeFormat\\|null\\.$#" + count: 1 + path: src/lib/UserSetting/DateTimeFormat/FullDateFormatterFactory.php + + - + message: "#^Cannot call method getTimeFormat\\(\\) on Ibexa\\\\User\\\\UserSetting\\\\Setting\\\\Value\\\\DateTimeFormat\\|null\\.$#" + count: 1 + path: src/lib/UserSetting/DateTimeFormat/FullTimeFormatterFactory.php + + - + message: "#^Cannot call method getDateFormat\\(\\) on Ibexa\\\\User\\\\UserSetting\\\\Setting\\\\Value\\\\DateTimeFormat\\|null\\.$#" + count: 1 + path: src/lib/UserSetting/DateTimeFormat/ShortDateFormatterFactory.php + + - + message: "#^Cannot call method getTimeFormat\\(\\) on Ibexa\\\\User\\\\UserSetting\\\\Setting\\\\Value\\\\DateTimeFormat\\|null\\.$#" + count: 1 + path: src/lib/UserSetting/DateTimeFormat/ShortTimeFormatterFactory.php + + - + message: "#^Method Ibexa\\\\User\\\\UserSetting\\\\Group\\\\AbstractGroup\\:\\:__construct\\(\\) has parameter \\$values with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/UserSetting/Group/AbstractGroup.php + + - + message: "#^Method Ibexa\\\\User\\\\UserSetting\\\\Group\\\\BrowsingGroup\\:\\:__construct\\(\\) has parameter \\$values with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/UserSetting/Group/BrowsingGroup.php + + - + message: "#^Method Ibexa\\\\User\\\\UserSetting\\\\Group\\\\CustomGroup\\:\\:__construct\\(\\) has parameter \\$values with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/UserSetting/Group/CustomGroup.php + + - + message: "#^Method Ibexa\\\\User\\\\UserSetting\\\\Group\\\\EditContentGroup\\:\\:__construct\\(\\) has parameter \\$values with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/UserSetting/Group/EditContentGroup.php + + - + message: "#^Method Ibexa\\\\User\\\\UserSetting\\\\Group\\\\LocationGroup\\:\\:__construct\\(\\) has parameter \\$values with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/UserSetting/Group/LocationGroup.php + + - + message: "#^Cannot call method format\\(\\) on Ibexa\\\\User\\\\UserSetting\\\\DateTimeFormat\\\\Formatter\\|null\\.$#" + count: 1 + path: src/lib/UserSetting/Setting/AbstractDateTimeFormat.php + + - + message: "#^Cannot call method getDateFormat\\(\\) on Ibexa\\\\User\\\\UserSetting\\\\Setting\\\\Value\\\\DateTimeFormat\\|null\\.$#" + count: 1 + path: src/lib/UserSetting/Setting/AbstractDateTimeFormat.php + + - + message: "#^Cannot call method getTimeFormat\\(\\) on Ibexa\\\\User\\\\UserSetting\\\\Setting\\\\Value\\\\DateTimeFormat\\|null\\.$#" + count: 1 + path: src/lib/UserSetting/Setting/AbstractDateTimeFormat.php + + - + message: "#^Property Ibexa\\\\User\\\\UserSetting\\\\Setting\\\\AbstractDateTimeFormat\\:\\:\\$formatter \\(Ibexa\\\\User\\\\UserSetting\\\\DateTimeFormat\\\\Formatter\\|null\\) does not accept Ibexa\\\\User\\\\UserSetting\\\\DateTimeFormat\\\\FormatterInterface\\.$#" + count: 1 + path: src/lib/UserSetting/Setting/AbstractDateTimeFormat.php + + - + message: "#^Method Ibexa\\\\User\\\\UserSetting\\\\Setting\\\\DateTimeFormatSerializer\\:\\:serialize\\(\\) should return string\\|null but returns string\\|false\\.$#" + count: 1 + path: src/lib/UserSetting/Setting/DateTimeFormatSerializer.php + + - + message: "#^Method Ibexa\\\\User\\\\UserSetting\\\\Setting\\\\FullDateTimeFormat\\:\\:getDefaultValue\\(\\) should return string but returns string\\|null\\.$#" + count: 1 + path: src/lib/UserSetting/Setting/FullDateTimeFormat.php + + - + message: "#^Method Ibexa\\\\User\\\\UserSetting\\\\Setting\\\\Language\\:\\:getDefaultValue\\(\\) should return string but returns string\\|false\\.$#" + count: 1 + path: src/lib/UserSetting/Setting/Language.php + + - + message: "#^Method Ibexa\\\\User\\\\UserSetting\\\\Setting\\\\ShortDateTimeFormat\\:\\:getDefaultValue\\(\\) should return string but returns string\\|null\\.$#" + count: 1 + path: src/lib/UserSetting/Setting/ShortDateTimeFormat.php + + - + message: "#^Method Ibexa\\\\User\\\\UserSetting\\\\Setting\\\\Value\\\\DateTimeFormat\\:\\:setDateFormat\\(\\) has no return type specified\\.$#" + count: 1 + path: src/lib/UserSetting/Setting/Value/DateTimeFormat.php + + - + message: "#^Method Ibexa\\\\User\\\\UserSetting\\\\Setting\\\\Value\\\\DateTimeFormat\\:\\:setTimeFormat\\(\\) has no return type specified\\.$#" + count: 1 + path: src/lib/UserSetting/Setting/Value/DateTimeFormat.php + + - + message: "#^Class Ibexa\\\\User\\\\UserSetting\\\\UserSettingArrayAccessor implements generic interface ArrayAccess but does not specify its types\\: TKey, TValue$#" + count: 1 + path: src/lib/UserSetting/UserSettingArrayAccessor.php + + - + message: "#^Method Ibexa\\\\User\\\\UserSetting\\\\UserSettingGroup\\:\\:__construct\\(\\) has parameter \\$settings with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/UserSetting/UserSettingGroup.php + + - + message: "#^Method Ibexa\\\\User\\\\UserSetting\\\\UserSettingGroup\\:\\:getSettings\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/UserSetting/UserSettingGroup.php + + - + message: "#^Method Ibexa\\\\User\\\\UserSetting\\\\UserSettingService\\:\\:countGroupedUserSettings\\(\\) has no return type specified\\.$#" + count: 1 + path: src/lib/UserSetting/UserSettingService.php + + - + message: "#^Method Ibexa\\\\User\\\\UserSetting\\\\UserSettingService\\:\\:createUserSettingsGroup\\(\\) has parameter \\$userPreferences with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/UserSetting/UserSettingService.php + + - + message: "#^Method Ibexa\\\\User\\\\UserSetting\\\\UserSettingService\\:\\:loadGroupedUserSettings\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/UserSetting/UserSettingService.php + + - + message: "#^Method Ibexa\\\\User\\\\UserSetting\\\\UserSettingService\\:\\:loadUserSettings\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/UserSetting/UserSettingService.php + + - + message: "#^Class Ibexa\\\\User\\\\UserSetting\\\\ValueDefinitionGroupRegistryEntry implements generic interface IteratorAggregate but does not specify its types\\: TKey, TValue$#" + count: 1 + path: src/lib/UserSetting/ValueDefinitionGroupRegistryEntry.php + + - + message: "#^Method Ibexa\\\\User\\\\UserSetting\\\\ValueDefinitionGroupRegistryEntry\\:\\:__construct\\(\\) has parameter \\$valueDefinitions with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/UserSetting/ValueDefinitionGroupRegistryEntry.php + + - + message: "#^Method Ibexa\\\\User\\\\UserSetting\\\\ValueDefinitionGroupRegistryEntry\\:\\:getValueDefinitions\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/UserSetting/ValueDefinitionGroupRegistryEntry.php + + - + message: "#^Property Ibexa\\\\User\\\\UserSetting\\\\ValueDefinitionGroupRegistryEntry\\:\\:\\$valueDefinitions type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/UserSetting/ValueDefinitionGroupRegistryEntry.php + + - + message: "#^Method Ibexa\\\\User\\\\UserSetting\\\\ValueDefinitionRegistry\\:\\:__construct\\(\\) has parameter \\$valueDefinitions with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/UserSetting/ValueDefinitionRegistry.php + + - + message: "#^Method Ibexa\\\\User\\\\UserSetting\\\\ValueDefinitionRegistry\\:\\:getValueDefinitionGroups\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/UserSetting/ValueDefinitionRegistry.php + + - + message: "#^PHPDoc tag @param references unknown parameter\\: \\$priority$#" + count: 1 + path: src/lib/UserSetting/ValueDefinitionRegistry.php + + - + message: "#^Property Ibexa\\\\User\\\\UserSetting\\\\ValueDefinitionRegistry\\:\\:\\$groupedDefinitions \\(array\\\\) does not accept array\\\\.$#" + count: 1 + path: src/lib/UserSetting/ValueDefinitionRegistry.php + + - + message: "#^Access to an undefined property Symfony\\\\Component\\\\Validator\\\\Constraint\\:\\:\\$message\\.$#" + count: 1 + path: src/lib/Validator/Constraints/EmailInvitationValidator.php + + - + message: "#^Method Ibexa\\\\User\\\\Validator\\\\Constraints\\\\EmailInvitationValidator\\:\\:validate\\(\\) has no return type specified\\.$#" + count: 1 + path: src/lib/Validator/Constraints/EmailInvitationValidator.php + + - + message: "#^Method Ibexa\\\\User\\\\Validator\\\\Constraints\\\\Password\\:\\:getTargets\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/Validator/Constraints/Password.php + + - + message: "#^Access to an undefined property Symfony\\\\Component\\\\Validator\\\\Constraint\\:\\:\\$contentType\\.$#" + count: 1 + path: src/lib/Validator/Constraints/PasswordValidator.php + + - + message: "#^Access to an undefined property Symfony\\\\Component\\\\Validator\\\\Constraint\\:\\:\\$user\\.$#" + count: 1 + path: src/lib/Validator/Constraints/PasswordValidator.php + + - + message: "#^Property Ibexa\\\\User\\\\Validator\\\\Constraints\\\\UserPassword\\:\\:\\$message has no type specified\\.$#" + count: 1 + path: src/lib/Validator/Constraints/UserPassword.php + + - + message: "#^Access to an undefined property Symfony\\\\Component\\\\Validator\\\\Constraint\\:\\:\\$message\\.$#" + count: 2 + path: src/lib/Validator/Constraints/UserPasswordValidator.php + + - + message: "#^Cannot call method getAPIUser\\(\\) on Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null\\.$#" + count: 1 + path: src/lib/Validator/Constraints/UserPasswordValidator.php + + - + message: "#^Cannot call method getUser\\(\\) on Symfony\\\\Component\\\\Security\\\\Core\\\\Authentication\\\\Token\\\\TokenInterface\\|null\\.$#" + count: 1 + path: src/lib/Validator/Constraints/UserPasswordValidator.php + + - + message: "#^Method Ibexa\\\\User\\\\Validator\\\\Constraints\\\\UserPasswordValidator\\:\\:validate\\(\\) has no return type specified\\.$#" + count: 1 + path: src/lib/Validator/Constraints/UserPasswordValidator.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and string will always evaluate to false\\.$#" + count: 1 + path: src/lib/Validator/Constraints/UserPasswordValidator.php + + - + message: "#^Method Ibexa\\\\User\\\\View\\\\UserSettings\\\\UpdateView\\:\\:__construct\\(\\) has parameter \\$parameters with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/View/UserSettings/UpdateView.php + + - + message: "#^Method Ibexa\\\\User\\\\View\\\\UserSettings\\\\UpdateView\\:\\:getInternalParameters\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/View/UserSettings/UpdateView.php + + - + message: "#^Method Ibexa\\\\User\\\\View\\\\UserSettings\\\\UpdateViewBuilder\\:\\:buildView\\(\\) has parameter \\$parameters with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/View/UserSettings/UpdateViewBuilder.php + + - + message: "#^Method Ibexa\\\\User\\\\View\\\\UserSettings\\\\UpdateViewProvider\\:\\:buildUpdateSettingView\\(\\) has parameter \\$viewConfig with no value type specified in iterable type array\\.$#" + count: 1 + path: src/lib/View/UserSettings/UpdateViewProvider.php + + - + message: "#^Method Ibexa\\\\User\\\\View\\\\UserSettings\\\\UpdateViewProvider\\:\\:getView\\(\\) should return Ibexa\\\\Core\\\\MVC\\\\Symfony\\\\View\\\\View but returns null\\.$#" + count: 1 + path: src/lib/View/UserSettings/UpdateViewProvider.php + + - + message: "#^Method Ibexa\\\\Tests\\\\Bundle\\\\User\\\\DependencyInjection\\\\Configuration\\\\Parser\\\\ChangePasswordTest\\:\\:getMinimalConfiguration\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: tests/bundle/DependencyInjection/Configuration/Parser/ChangePasswordTest.php + + - + message: "#^Method Ibexa\\\\Tests\\\\Bundle\\\\User\\\\DependencyInjection\\\\Configuration\\\\Parser\\\\ChangePasswordTest\\:\\:testOverwrittenConfig\\(\\) has no return type specified\\.$#" + count: 1 + path: tests/bundle/DependencyInjection/Configuration/Parser/ChangePasswordTest.php + + - + message: "#^Method Ibexa\\\\Tests\\\\Bundle\\\\User\\\\DependencyInjection\\\\Configuration\\\\Parser\\\\ForgotPasswordTest\\:\\:getMinimalConfiguration\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: tests/bundle/DependencyInjection/Configuration/Parser/ForgotPasswordTest.php + + - + message: "#^Method Ibexa\\\\Tests\\\\Bundle\\\\User\\\\DependencyInjection\\\\Configuration\\\\Parser\\\\ForgotPasswordTest\\:\\:testOverwrittenConfig\\(\\) has no return type specified\\.$#" + count: 1 + path: tests/bundle/DependencyInjection/Configuration/Parser/ForgotPasswordTest.php + + - + message: "#^Method Ibexa\\\\Tests\\\\Bundle\\\\User\\\\DependencyInjection\\\\Configuration\\\\Parser\\\\ResetPasswordTest\\:\\:getMinimalConfiguration\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: tests/bundle/DependencyInjection/Configuration/Parser/ResetPasswordTest.php + + - + message: "#^Method Ibexa\\\\Tests\\\\Bundle\\\\User\\\\DependencyInjection\\\\Configuration\\\\Parser\\\\ResetPasswordTest\\:\\:testOverwrittenConfig\\(\\) has no return type specified\\.$#" + count: 1 + path: tests/bundle/DependencyInjection/Configuration/Parser/ResetPasswordTest.php + + - + message: "#^Method Ibexa\\\\Tests\\\\User\\\\Form\\\\Type\\\\ChoiceList\\\\Loader\\\\AvailableLocaleChoiceLoaderTest\\:\\:providerForGetChoiceList\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: tests/lib/Form/Type/ChoiceList/Loader/AvailableLocaleChoiceLoaderTest.php + + - + message: "#^Method Ibexa\\\\Tests\\\\User\\\\Form\\\\Type\\\\ChoiceList\\\\Loader\\\\AvailableLocaleChoiceLoaderTest\\:\\:testGetChoiceList\\(\\) has parameter \\$additionalTranslations with no value type specified in iterable type array\\.$#" + count: 1 + path: tests/lib/Form/Type/ChoiceList/Loader/AvailableLocaleChoiceLoaderTest.php + + - + message: "#^Method Ibexa\\\\Tests\\\\User\\\\Form\\\\Type\\\\ChoiceList\\\\Loader\\\\AvailableLocaleChoiceLoaderTest\\:\\:testGetChoiceList\\(\\) has parameter \\$availableTranslations with no value type specified in iterable type array\\.$#" + count: 1 + path: tests/lib/Form/Type/ChoiceList/Loader/AvailableLocaleChoiceLoaderTest.php + + - + message: "#^Method Ibexa\\\\Tests\\\\User\\\\Form\\\\Type\\\\ChoiceList\\\\Loader\\\\AvailableLocaleChoiceLoaderTest\\:\\:testGetChoiceList\\(\\) has parameter \\$expectedLocales with no value type specified in iterable type array\\.$#" + count: 1 + path: tests/lib/Form/Type/ChoiceList/Loader/AvailableLocaleChoiceLoaderTest.php + + - + message: "#^Property Ibexa\\\\Tests\\\\User\\\\Form\\\\Type\\\\ChoiceList\\\\Loader\\\\AvailableLocaleChoiceLoaderTest\\:\\:\\$localeConstraint is never read, only written\\.$#" + count: 1 + path: tests/lib/Form/Type/ChoiceList/Loader/AvailableLocaleChoiceLoaderTest.php + + - + message: "#^Access to an undefined property Ibexa\\\\Tests\\\\User\\\\Invitation\\\\InvitationServiceTest\\:\\:\\$configResolver\\.$#" + count: 2 + path: tests/lib/Invitation/InvitationServiceTest.php + + - + message: "#^Access to an undefined property Ibexa\\\\Tests\\\\User\\\\Invitation\\\\InvitationServiceTest\\:\\:\\$siteAccessService\\.$#" + count: 2 + path: tests/lib/Invitation/InvitationServiceTest.php + + - + message: "#^Method Ibexa\\\\Tests\\\\User\\\\Invitation\\\\InvitationServiceTest\\:\\:invitationProvider\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: tests/lib/Invitation/InvitationServiceTest.php + + - + message: "#^Method Ibexa\\\\Tests\\\\User\\\\Permission\\\\UserPermissionsLimitationTypeTest\\:\\:providerForTestAcceptValue\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: tests/lib/Permission/UserPermissionsLimitationTypeTest.php + + - + message: "#^Method Ibexa\\\\Tests\\\\User\\\\Permission\\\\UserPermissionsLimitationTypeTest\\:\\:providerForTestAcceptValueException\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: tests/lib/Permission/UserPermissionsLimitationTypeTest.php + + - + message: "#^Method Ibexa\\\\Tests\\\\User\\\\Permission\\\\UserPermissionsLimitationTypeTest\\:\\:providerForTestEvaluate\\(\\) has no return type specified\\.$#" + count: 1 + path: tests/lib/Permission/UserPermissionsLimitationTypeTest.php + + - + message: "#^Method Ibexa\\\\Tests\\\\User\\\\Permission\\\\UserPermissionsLimitationTypeTest\\:\\:providerForTestValidateError\\(\\) has no return type specified\\.$#" + count: 1 + path: tests/lib/Permission/UserPermissionsLimitationTypeTest.php + + - + message: "#^Method Ibexa\\\\Tests\\\\User\\\\UserSetting\\\\ValueDefinitionRegistryTest\\:\\:testAddValueDefinition\\(\\) has no return type specified\\.$#" + count: 1 + path: tests/lib/UserSetting/ValueDefinitionRegistryTest.php + + - + message: "#^Method Ibexa\\\\Tests\\\\User\\\\UserSetting\\\\ValueDefinitionRegistryTest\\:\\:testCountValueDefinitions\\(\\) has no return type specified\\.$#" + count: 1 + path: tests/lib/UserSetting/ValueDefinitionRegistryTest.php + + - + message: "#^Method Ibexa\\\\Tests\\\\User\\\\UserSetting\\\\ValueDefinitionRegistryTest\\:\\:testCountValueDefinitionsWithEmptyRegistry\\(\\) has no return type specified\\.$#" + count: 1 + path: tests/lib/UserSetting/ValueDefinitionRegistryTest.php + + - + message: "#^Method Ibexa\\\\Tests\\\\User\\\\UserSetting\\\\ValueDefinitionRegistryTest\\:\\:testGetValueDefinition\\(\\) has no return type specified\\.$#" + count: 1 + path: tests/lib/UserSetting/ValueDefinitionRegistryTest.php + + - + message: "#^Method Ibexa\\\\Tests\\\\User\\\\UserSetting\\\\ValueDefinitionRegistryTest\\:\\:testGetValueDefinitions\\(\\) has no return type specified\\.$#" + count: 1 + path: tests/lib/UserSetting/ValueDefinitionRegistryTest.php + + - + message: "#^Method Ibexa\\\\Tests\\\\User\\\\UserSetting\\\\ValueDefinitionRegistryTest\\:\\:testHasValueDefinition\\(\\) has no return type specified\\.$#" + count: 1 + path: tests/lib/UserSetting/ValueDefinitionRegistryTest.php + + - + message: "#^Method Ibexa\\\\Tests\\\\User\\\\Validator\\\\Constraint\\\\PasswordValidatorTest\\:\\:dataProviderForValidateNotSupportedValueType\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: tests/lib/Validator/Constraint/PasswordValidatorTest.php + + - + message: "#^Method Ibexa\\\\Tests\\\\User\\\\Validator\\\\Constraint\\\\PasswordValidatorTest\\:\\:testValidateShouldBeSkipped\\(\\) has parameter \\$value with no type specified\\.$#" + count: 1 + path: tests/lib/Validator/Constraint/PasswordValidatorTest.php + + - + message: "#^Method Ibexa\\\\Tests\\\\User\\\\Validator\\\\Constraint\\\\UserPasswordTest\\:\\:testConstruct\\(\\) has no return type specified\\.$#" + count: 1 + path: tests/lib/Validator/Constraint/UserPasswordTest.php + + - + message: "#^Method Ibexa\\\\Tests\\\\User\\\\Validator\\\\Constraint\\\\UserPasswordValidatorTest\\:\\:emptyDataProvider\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: tests/lib/Validator/Constraint/UserPasswordValidatorTest.php + + - + message: "#^Method Ibexa\\\\Tests\\\\User\\\\Validator\\\\Constraint\\\\UserPasswordValidatorTest\\:\\:testEmptyValueType\\(\\) has no return type specified\\.$#" + count: 1 + path: tests/lib/Validator/Constraint/UserPasswordValidatorTest.php + + - + message: "#^Method Ibexa\\\\Tests\\\\User\\\\Validator\\\\Constraint\\\\UserPasswordValidatorTest\\:\\:testInvalid\\(\\) has no return type specified\\.$#" + count: 1 + path: tests/lib/Validator/Constraint/UserPasswordValidatorTest.php + + - + message: "#^Method Ibexa\\\\Tests\\\\User\\\\Validator\\\\Constraint\\\\UserPasswordValidatorTest\\:\\:testValid\\(\\) has no return type specified\\.$#" + count: 1 + path: tests/lib/Validator/Constraint/UserPasswordValidatorTest.php + + - + message: "#^Parameter \\#1 \\$password of method Ibexa\\\\User\\\\Validator\\\\Constraints\\\\UserPasswordValidator\\:\\:validate\\(\\) expects string, string\\|null given\\.$#" + count: 1 + path: tests/lib/Validator/Constraint/UserPasswordValidatorTest.php diff --git a/phpstan-baseline.neon.php b/phpstan-baseline.neon.php new file mode 100644 index 0000000..d78e8e4 --- /dev/null +++ b/phpstan-baseline.neon.php @@ -0,0 +1,19 @@ +definition; } - public function getIterator() + public function getIterator(): Traversable { - return new \ArrayIterator($this->valueDefinitions); + return new ArrayIterator($this->valueDefinitions); } }