diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ddf7fccbe..3f1d75ed5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,7 +9,7 @@ cache: # Bring in any services we need http://docs.gitlab.com/ee/ci/docker/using_docker_images.html#what-is-a-service # See http://docs.gitlab.com/ee/ci/services/README.html for examples. services: - - name: postgis/postgis:12-3.1-alpine + - name: postgis/postgis:14-3.3-alpine alias: db - name: redis alias: redis @@ -21,7 +21,7 @@ variables: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres # configure database access - DATABASE_URL: postgresql://postgres:postgres@db:5432/postgres?serverVersion=12&charset=utf8 + DATABASE_URL: postgresql://postgres:postgres@db:5432/postgres?serverVersion=14&charset=utf8 # fetch the chill-app using git submodules GIT_SUBMODULE_STRATEGY: recursive REDIS_HOST: redis @@ -37,12 +37,11 @@ stages: build: stage: Composer install - image: registry.gitlab.com/chill-projet/chill-app/php-base-image:7.4 + image: gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image:php82 before_script: - - curl -sS https://getcomposer.org/installer | php - - php -d memory_limit=2G composer.phar config -g cache-dir "$(pwd)/.cache" + - composer config -g cache-dir "$(pwd)/.cache" script: - - php -d memory_limit=2G composer.phar install --optimize-autoloader --no-ansi --no-interaction --no-progress + - composer install --optimize-autoloader --no-ansi --no-interaction --no-progress cache: paths: - .cache/ @@ -54,9 +53,12 @@ build: code_style: stage: Tests - image: registry.gitlab.com/chill-projet/chill-app/php-base-image:7.4 + image: gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image:php82 script: - - bin/grumphp run --tasks=phpcsfixer + - php-cs-fixer fix --dry-run -v --show-progress=none + cache: + paths: + - .cache/ artifacts: expire_in: 30 min paths: @@ -65,30 +67,49 @@ code_style: phpstan_tests: stage: Tests - image: registry.gitlab.com/chill-projet/chill-app/php-base-image:7.4 + image: gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image:php82 script: - - bin/grumphp run --tasks=phpstan + - bin/phpstan analyze --memory-limit=2G + cache: + paths: + - .cache/ artifacts: expire_in: 30 min paths: - bin - tests/app/vendor/ -psalm_tests: +rector_tests: stage: Tests - image: registry.gitlab.com/chill-projet/chill-app/php-base-image:7.4 + image: gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image:php82 script: - - bin/grumphp run --tasks=psalm - allow_failure: true + - bin/rector --dry-run + cache: + paths: + - .cache/ artifacts: expire_in: 30 min paths: - bin - tests/app/vendor/ +# psalm_tests: +# stage: Tests +# image: gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image:php82 +# script: +# - bin/psalm +# allow_failure: true +# artifacts: +# expire_in: 30 min +# paths: +# - bin +# - tests/app/vendor/ + unit_tests: stage: Tests - image: registry.gitlab.com/chill-projet/chill-app/php-base-image:7.4 + image: gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image:php82 + # until we fix testes + allow_failure: true script: - php tests/app/bin/console doctrine:migrations:migrate -n - php -d memory_limit=2G tests/app/bin/console cache:clear --env=dev diff --git a/.php_cs.dist.php b/.php-cs-fixer.dist.php similarity index 64% rename from .php_cs.dist.php rename to .php-cs-fixer.dist.php index bf15b5876..4b5bf98ee 100644 --- a/.php_cs.dist.php +++ b/.php-cs-fixer.dist.php @@ -9,13 +9,24 @@ declare(strict_types=1); * the LICENSE file that was distributed with this source code. */ -$config = require __DIR__ . '/tests/app/vendor/drupol/php-conventions/config/php73/php_cs_fixer.config.php'; +$finder = PhpCsFixer\Finder::create(); -$config - ->getFinder() - ->ignoreDotFiles(false) +$finder + ->in(__DIR__.'/src') + ->append([__FILE__]) + ->exclude(['docs/', 'tests/app']) ->notPath('tests/app') - ->name(['.php_cs.dist.php']); + ->ignoreDotFiles(true) + ->name('**.php') +; + +$config = new PhpCsFixer\Config(); +$config + ->setFinder($finder) + ->setRiskyAllowed(true) + ->setCacheFile('.cache/php-cs-fixer.cache') + ->setUsingCache(true) +; $rules = $config->getRules(); @@ -68,9 +79,42 @@ $riskyRules = [ // 'psr_autoloading' => false, ]; +$untilFullSwitchToPhp8 = [ + 'blank_line_between_import_groups' => false, + 'declare_strict_types' => true, + 'multiline_whitespace_before_semicolons' => false, + 'phpdoc_no_empty_return' => false, +]; + $rules = array_merge( + [ + '@PhpCsFixer' => true, + '@PhpCsFixer:risky' => false, + '@Symfony' => false, + '@Symfony:risky' => false, + 'ordered_class_elements' => [ + 'order' => [ + 'use_trait', + 'constant_public', + 'constant_protected', + 'constant_private', + 'property_public', + 'property_protected', + 'property_private', + 'construct', + 'destruct', + 'magic', + 'phpunit', + 'method_public', + 'method_protected', + 'method_private', + ], + 'sort_algorithm' => 'alpha', + ] + ], $rules, - $riskyRules + $riskyRules, + $untilFullSwitchToPhp8, ); $rules['header_comment']['header'] = trim(file_get_contents(__DIR__ . '/resource/header.txt')); diff --git a/composer.json b/composer.json index 9447d6db5..033b3f19b 100644 --- a/composer.json +++ b/composer.json @@ -8,7 +8,7 @@ "social worker" ], "require": { - "php": "^7.4", + "php": "^7.4|^8.2", "ext-json": "*", "ext-openssl": "*", "ext-redis": "*", @@ -64,18 +64,25 @@ }, "require-dev": { "doctrine/doctrine-fixtures-bundle": "^3.3", - "drupol/php-conventions": "^5", "fakerphp/faker": "^1.13", + "jangregor/phpstan-prophecy": "^1.0", "nelmio/alice": "^3.8", "phpspec/prophecy-phpunit": "^2.0", + "phpstan/extension-installer": "^1.2", + "phpstan/phpstan": "^1.9", + "phpstan/phpstan-deprecation-rules": "^1.1", "phpstan/phpstan-strict-rules": "^1.0", "phpunit/phpunit": ">= 7.5", + "psalm/plugin-phpunit": "^0.18.4", + "psalm/plugin-symfony": "^4.0.2", + "rector/rector": "^0.15.23", "symfony/debug-bundle": "^5.1", "symfony/dotenv": "^4.4", "symfony/maker-bundle": "^1.20", "symfony/phpunit-bridge": "^4.4", "symfony/stopwatch": "^4.4", - "symfony/var-dumper": "^4.4" + "symfony/var-dumper": "^4.4", + "vimeo/psalm": "^4.30.0" }, "conflict": { "symfony/symfony": "*" diff --git a/docs/source/installation/index.rst b/docs/source/installation/index.rst index 29856f2e4..852a2a6d0 100644 --- a/docs/source/installation/index.rst +++ b/docs/source/installation/index.rst @@ -129,12 +129,12 @@ This script will : .. note:: - In some cases it can happen that an old image (chill_base_php or chill_php) stored in the docker cache will make the script fail. To solve this problem you have to delete the image and the container, before the make init : + In some cases it can happen that an old image (chill_base_php82 or chill_php82) stored in the docker cache will make the script fail. To solve this problem you have to delete the image and the container, before the make init : .. code-block:: bash docker-compose images php - docker rmi -f chill_php:prod + docker rmi -f chill_php82:prod docker-compose rm php diff --git a/grumphp.yml b/grumphp.yml deleted file mode 100644 index c81830d5b..000000000 --- a/grumphp.yml +++ /dev/null @@ -1,40 +0,0 @@ -imports: - - { - resource: tests/app/vendor/drupol/php-conventions/config/php73/grumphp.yml, - } - -parameters: - tasks.phpcsfixer.config: .php_cs.dist.php - tasks.license.name: AGPL-3.0 - tasks.license.holder: Champs-Libres - tasks.license.date_from: 2001 - - tasks.phpcsfixer.allow_risky: true - tasks.phpcsfixer.diff: true - tasks.phpstan.level: 1 - tasks.phpstan.blocking: true - tasks.phpstan.ignore_patterns: - - "/.github/" - - "/.idea/" - - "/build/" - - "/benchmarks/" - - "/docs/" - - "/node_modules/" - - "/resource/" - - "/spec/" - - "/var/" - - "/vendor/" - - "/tests/app" - - # Psalm - tasks.psalm.blocking: true - tasks.psalm.ignore_patterns: - - "/.github/" - - "/.idea/" - - "/build/" - - "/benchmarks/" - - "/node_modules/" - - "/resource/" - - "/spec/" - - "/var/" - - "/vendor/" diff --git a/package.json b/package.json index 17b02c63a..590976cfa 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { - "name": "chill", - "version": "2.0.0", - "devDependencies": { + "name": "chill", + "version": "2.0.0", + "devDependencies": { "@alexlafroscia/yaml-merge": "^4.0.0", "@apidevtools/swagger-cli": "^4.0.4", "@babel/core": "^7.20.5", @@ -34,13 +34,14 @@ "webpack-cli": "^5.0.1" }, "dependencies": { - "@fullcalendar/core": "^5.11.0", - "@fullcalendar/daygrid": "^5.11.0", - "@fullcalendar/interaction": "^5.11.0", - "@fullcalendar/list": "^5.11.0", - "@fullcalendar/timegrid": "^5.11.0", - "@fullcalendar/vue3": "^5.11.1", + "@fullcalendar/core": "^6.1.4", + "@fullcalendar/daygrid": "^6.1.4", + "@fullcalendar/interaction": "^6.1.4", + "@fullcalendar/list": "^6.1.4", + "@fullcalendar/timegrid": "^6.1.4", + "@fullcalendar/vue3": "^6.1.4", "@popperjs/core": "^2.9.2", + "@types/leaflet": "^1.9.3", "dropzone": "^5.7.6", "es6-promise": "^4.2.8", "leaflet": "^1.7.1", diff --git a/phpstan-baseline-level-2.neon b/phpstan-baseline-level-2.neon new file mode 100644 index 000000000..6f7cec495 --- /dev/null +++ b/phpstan-baseline-level-2.neon @@ -0,0 +1,301 @@ +parameters: + ignoreErrors: + - + message: "#^Only booleans are allowed in a negated boolean, Chill\\\\ActivityBundle\\\\Entity\\\\Activity\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Controller/ActivityController.php + + - + message: "#^Only booleans are allowed in a ternary operator condition, Chill\\\\MainBundle\\\\Entity\\\\Scope\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Controller/ActivityController.php + + - + message: "#^Only booleans are allowed in a ternary operator condition, Chill\\\\PersonBundle\\\\Entity\\\\Person\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Controller/ActivityController.php + + - + message: "#^Only booleans are allowed in a ternary operator condition, DateTime\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Controller/ActivityController.php + + - + message: "#^Only booleans are allowed in a negated boolean, Chill\\\\ActivityBundle\\\\Entity\\\\ActivityReasonCategory\\|null given\\.$#" + count: 3 + path: src/Bundle/ChillActivityBundle/Controller/ActivityReasonCategoryController.php + + - + message: "#^Only booleans are allowed in a negated boolean, Chill\\\\ActivityBundle\\\\Entity\\\\ActivityReason\\|null given\\.$#" + count: 2 + path: src/Bundle/ChillActivityBundle/Controller/ActivityReasonController.php + + - + message: "#^Call to method DateTime\\:\\:setTimezone\\(\\) with incorrect case\\: setTimeZone$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Form/ActivityType.php + + - + message: "#^Only booleans are allowed in &&, Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\|null given on the right side\\.$#" + count: 2 + path: src/Bundle/ChillActivityBundle/Form/ActivityType.php + + - + message: "#^Only booleans are allowed in an if condition, Chill\\\\AsideActivityBundle\\\\Entity\\\\AsideActivityCategory\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillAsideActivityBundle/src/Entity/AsideActivityCategory.php + + - + message: "#^Call to method DateTimeImmutable\\:\\:setTimezone\\(\\) with incorrect case\\: setTimeZone$#" + count: 1 + path: src/Bundle/ChillAsideActivityBundle/src/Form/AsideActivityFormType.php + + - + message: "#^Only booleans are allowed in a ternary operator condition, Chill\\\\MainBundle\\\\Entity\\\\Location\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/Controller/CalendarController.php + + - + message: "#^Only booleans are allowed in an if condition, Symfony\\\\Component\\\\Validator\\\\ConstraintViolationListInterface given\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Command/CreateFieldsOnGroupCommand.php + + - + message: "#^Only booleans are allowed in a negated boolean, Chill\\\\CustomFieldsBundle\\\\Entity\\\\CustomFieldsGroup\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Controller/CustomFieldController.php + + - + message: "#^Only booleans are allowed in a negated boolean, Chill\\\\CustomFieldsBundle\\\\Entity\\\\CustomField\\|null given\\.$#" + count: 3 + path: src/Bundle/ChillCustomFieldsBundle/Controller/CustomFieldController.php + + - + message: "#^Only booleans are allowed in a ternary operator condition, Chill\\\\CustomFieldsBundle\\\\Entity\\\\CustomFieldsGroup given\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Controller/CustomFieldController.php + + - + message: "#^Only booleans are allowed in a negated boolean, Chill\\\\CustomFieldsBundle\\\\Entity\\\\CustomFieldsGroup\\|null given\\.$#" + count: 4 + path: src/Bundle/ChillCustomFieldsBundle/Controller/CustomFieldsGroupController.php + + - + message: "#^Only booleans are allowed in a ternary operator condition, string given\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldLongChoice.php + + - + message: "#^Only booleans are allowed in a negated boolean, string given\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Form/DataTransformer/CustomFieldsGroupToIdTransformer.php + + - + message: "#^Call to method Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:getFirstName\\(\\) with incorrect case\\: getFirstname$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/EventController.php + + - + message: "#^Call to method Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:getLastName\\(\\) with incorrect case\\: getLastname$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/EventController.php + + - + message: "#^Call to method Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:getMobilenumber\\(\\) with incorrect case\\: getMobileNumber$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/EventController.php + + - + message: "#^Call to method Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:getPhonenumber\\(\\) with incorrect case\\: getPhoneNumber$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/EventController.php + + - + message: "#^Only booleans are allowed in a negated boolean, Chill\\\\EventBundle\\\\Entity\\\\Event given\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/EventController.php + + - + message: "#^Only booleans are allowed in a negated boolean, Chill\\\\EventBundle\\\\Entity\\\\Event\\|null given\\.$#" + count: 3 + path: src/Bundle/ChillEventBundle/Controller/EventController.php + + - + message: "#^Only booleans are allowed in a ternary operator condition, int given\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/EventController.php + + - + message: "#^Only numeric types are allowed in pre\\-increment, string given\\.$#" + count: 2 + path: src/Bundle/ChillEventBundle/Controller/EventController.php + + - + message: "#^Only booleans are allowed in a negated boolean, Chill\\\\EventBundle\\\\Entity\\\\EventType\\|null given\\.$#" + count: 4 + path: src/Bundle/ChillEventBundle/Controller/EventTypeController.php + + - + message: "#^Only booleans are allowed in a negated boolean, Chill\\\\EventBundle\\\\Entity\\\\Participation\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/ParticipationController.php + + - + message: "#^Only booleans are allowed in a negated boolean, Chill\\\\EventBundle\\\\Entity\\\\Role\\|null given\\.$#" + count: 4 + path: src/Bundle/ChillEventBundle/Controller/RoleController.php + + - + message: "#^Only booleans are allowed in a negated boolean, Chill\\\\EventBundle\\\\Entity\\\\Status\\|null given\\.$#" + count: 4 + path: src/Bundle/ChillEventBundle/Controller/StatusController.php + + - + message: "#^Only booleans are allowed in a negated boolean, Chill\\\\MainBundle\\\\Entity\\\\Language\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Command/LoadAndUpdateLanguagesCommand.php + + - + message: "#^Only booleans are allowed in an if condition, Chill\\\\MainBundle\\\\Entity\\\\Language\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Command/LoadAndUpdateLanguagesCommand.php + + - + message: "#^Only booleans are allowed in an if condition, int given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Command/LoadPostalCodesCommand.php + + - + message: "#^Only booleans are allowed in a negated boolean, Chill\\\\MainBundle\\\\Entity\\\\Center\\|null given\\.$#" + count: 3 + path: src/Bundle/ChillMainBundle/Controller/CenterController.php + + - + message: "#^Call to method Redis\\:\\:setex\\(\\) with incorrect case\\: setEx$#" + count: 2 + path: src/Bundle/ChillMainBundle/Controller/ExportController.php + + - + message: "#^Only booleans are allowed in a negated boolean, Chill\\\\MainBundle\\\\Entity\\\\PermissionsGroup\\|null given\\.$#" + count: 5 + path: src/Bundle/ChillMainBundle/Controller/PermissionsGroupController.php + + - + message: "#^Only booleans are allowed in a negated boolean, Chill\\\\MainBundle\\\\Entity\\\\RoleScope\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/PermissionsGroupController.php + + - + message: "#^Only booleans are allowed in a negated boolean, Chill\\\\MainBundle\\\\Entity\\\\Scope\\|null given\\.$#" + count: 3 + path: src/Bundle/ChillMainBundle/Controller/ScopeController.php + + - + message: "#^Only booleans are allowed in a negated boolean, Chill\\\\MainBundle\\\\Entity\\\\GroupCenter\\|null given\\.$#" + count: 2 + path: src/Bundle/ChillMainBundle/Controller/UserController.php + + - + message: "#^Only booleans are allowed in a negated boolean, Chill\\\\MainBundle\\\\Entity\\\\User\\|null given\\.$#" + count: 2 + path: src/Bundle/ChillMainBundle/Controller/UserController.php + + - + message: "#^Only booleans are allowed in an if condition, int given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadPostalCodes.php + + - + message: "#^Only numeric types are allowed in pre\\-increment, string given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/Formatter/SpreadsheetListFormatter.php + + - + message: "#^Only booleans are allowed in an if condition, int given\\.$#" + count: 2 + path: src/Bundle/ChillMainBundle/Form/DataTransformer/IdToEntityDataTransformer.php + + - + message: "#^Only booleans are allowed in a ternary operator condition, string\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/Type/PickUserLocationType.php + + - + message: "#^Only booleans are allowed in a ternary operator condition, int\\<0, max\\> given\\.$#" + count: 4 + path: src/Bundle/ChillMainBundle/Search/SearchApiQuery.php + + - + message: "#^Call to method Chill\\\\MainBundle\\\\Entity\\\\Address\\:\\:getPostcode\\(\\) with incorrect case\\: getPostCode$#" + count: 6 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/AddressNormalizer.php + + - + message: "#^Only booleans are allowed in an if condition, Symfony\\\\Component\\\\Serializer\\\\Mapping\\\\ClassDiscriminatorMapping\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/DoctrineExistingEntityNormalizer.php + + - + message: "#^Only booleans are allowed in a negated boolean, null given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Person.php + + - + message: "#^Only booleans are allowed in a ternary operator condition, Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriodParticipation\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Person.php + + - + message: "#^Call to method Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:getFirstName\\(\\) with incorrect case\\: getFirstname$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Form/Type/PickPersonType.php + + - + message: "#^Call to method Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:getLastName\\(\\) with incorrect case\\: getLastname$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Form/Type/PickPersonType.php + + - + message: "#^Only booleans are allowed in an if condition, int\\<0, max\\> given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Search/SimilarPersonMatcher.php + + - + message: "#^Only booleans are allowed in &&, null given on the left side\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/MembersEditorNormalizer.php + + - + message: "#^Only booleans are allowed in a ternary operator condition, Chill\\\\PersonBundle\\\\Entity\\\\Household\\\\Household\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonJsonNormalizer.php + + - + message: "#^Only booleans are allowed in a ternary operator condition, array\\ given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonJsonNormalizer.php + + - + message: "#^Call to method Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:getDeathdate\\(\\) with incorrect case\\: getDeathDate$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Templating/Entity/PersonRender.php + + - + message: "#^Only booleans are allowed in a negated boolean, Chill\\\\PersonBundle\\\\Entity\\\\Person\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Only booleans are allowed in a negated boolean, Chill\\\\ReportBundle\\\\Entity\\\\Report given\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Call to method Chill\\\\ThirdPartyBundle\\\\Entity\\\\ThirdParty\\:\\:setFirstname\\(\\) with incorrect case\\: setFirstName$#" + count: 1 + path: src/Bundle/ChillThirdPartyBundle/EventListener/ThirdPartyEventListener.php + + - + message: "#^Dynamic call to static method Chill\\\\ThirdPartyBundle\\\\ThirdPartyType\\\\ThirdPartyTypeProviderInterface\\:\\:getKey\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillThirdPartyBundle/ThirdPartyType/ThirdPartyTypeManager.php diff --git a/phpstan-baseline-level-3.neon b/phpstan-baseline-level-3.neon new file mode 100644 index 000000000..b7091f4ad --- /dev/null +++ b/phpstan-baseline-level-3.neon @@ -0,0 +1,804 @@ +parameters: + ignoreErrors: + - + message: "#^Return type \\(array\\\\) of method Chill\\\\ActivityBundle\\\\Repository\\\\ActivityACLAwareRepository\\:\\:findByPerson\\(\\) should be covariant with return type \\(array\\\\) of method Chill\\\\ActivityBundle\\\\Repository\\\\ActivityACLAwareRepositoryInterface\\:\\:findByPerson\\(\\)$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepository.php + + - + message: "#^Return type \\(array\\\\) of method Chill\\\\ActivityBundle\\\\Repository\\\\ActivityReasonRepository\\:\\:findAll\\(\\) should be covariant with return type \\(array\\\\) of method Doctrine\\\\ORM\\\\EntityRepository\\\\:\\:findAll\\(\\)$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Repository/ActivityReasonRepository.php + + - + message: "#^Return type \\(array\\\\>\\) of method Chill\\\\AsideActivityBundle\\\\Security\\\\AsideActivityVoter\\:\\:getRolesWithHierarchy\\(\\) should be covariant with return type \\(array\\\\>\\) of method Chill\\\\MainBundle\\\\Security\\\\ProvideRoleHierarchyInterface\\:\\:getRolesWithHierarchy\\(\\)$#" + count: 1 + path: src/Bundle/ChillAsideActivityBundle/src/Security/AsideActivityVoter.php + + - + message: "#^Parameter \\#1 \\$criteria \\(array\\\\) of method Chill\\\\CalendarBundle\\\\Repository\\\\CalendarDocRepository\\:\\:findBy\\(\\) should be contravariant with parameter \\$criteria \\(array\\) of method Chill\\\\CalendarBundle\\\\Repository\\\\CalendarDocRepositoryInterface\\:\\:findBy\\(\\)$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/Repository/CalendarDocRepository.php + + - + message: "#^Parameter \\#1 \\$criteria \\(array\\\\) of method Chill\\\\CalendarBundle\\\\Repository\\\\CalendarDocRepository\\:\\:findOneBy\\(\\) should be contravariant with parameter \\$criteria \\(array\\) of method Chill\\\\CalendarBundle\\\\Repository\\\\CalendarDocRepositoryInterface\\:\\:findOneBy\\(\\)$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/Repository/CalendarDocRepository.php + + - + message: "#^Parameter \\#2 \\$orderBy \\(array\\\\|null\\) of method Chill\\\\CalendarBundle\\\\Repository\\\\CalendarDocRepository\\:\\:findBy\\(\\) should be contravariant with parameter \\$orderBy \\(array\\|null\\) of method Chill\\\\CalendarBundle\\\\Repository\\\\CalendarDocRepositoryInterface\\:\\:findBy\\(\\)$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/Repository/CalendarDocRepository.php + + - + message: "#^Return type \\(array\\\\) of method Chill\\\\CalendarBundle\\\\Repository\\\\CalendarDocRepository\\:\\:findAll\\(\\) should be covariant with return type \\(array\\\\) of method Chill\\\\CalendarBundle\\\\Repository\\\\CalendarDocRepositoryInterface\\:\\:findAll\\(\\)$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/Repository/CalendarDocRepository.php + + - + message: "#^Return type \\(array\\\\) of method Chill\\\\CalendarBundle\\\\Repository\\\\CalendarDocRepository\\:\\:findBy\\(\\) should be covariant with return type \\(array\\\\) of method Chill\\\\CalendarBundle\\\\Repository\\\\CalendarDocRepositoryInterface\\:\\:findBy\\(\\)$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/Repository/CalendarDocRepository.php + + - + message: "#^Parameter \\#2 \\$subject \\(Chill\\\\CalendarBundle\\\\Entity\\\\CalendarDoc\\) of method Chill\\\\CalendarBundle\\\\Security\\\\Voter\\\\CalendarDocVoter\\:\\:voteOnAttribute\\(\\) should be contravariant with parameter \\$subject \\(mixed\\) of method Symfony\\\\Component\\\\Security\\\\Core\\\\Authorization\\\\Voter\\\\Voter\\:\\:voteOnAttribute\\(\\)$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/Security/Voter/CalendarDocVoter.php + + - + message: "#^Parameter \\#2 \\$subject \\(Chill\\\\CalendarBundle\\\\Entity\\\\Invite\\) of method Chill\\\\CalendarBundle\\\\Security\\\\Voter\\\\InviteVoter\\:\\:voteOnAttribute\\(\\) should be contravariant with parameter \\$subject \\(mixed\\) of method Symfony\\\\Component\\\\Security\\\\Core\\\\Authorization\\\\Voter\\\\Voter\\:\\:voteOnAttribute\\(\\)$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/Security/Voter/InviteVoter.php + + + - + message: "#^Return type \\(int\\|void\\|null\\) of method Chill\\\\CustomFieldsBundle\\\\Command\\\\CreateFieldsOnGroupCommand\\:\\:execute\\(\\) should be covariant with return type \\(int\\) of method Symfony\\\\Component\\\\Console\\\\Command\\\\Command\\:\\:execute\\(\\)$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Command/CreateFieldsOnGroupCommand.php + + - + message: "#^Parameter \\#1 \\$customFieldsGroup \\(Chill\\\\CustomFieldsBundle\\\\Entity\\\\CustomFieldsGroup\\|null\\) of method Chill\\\\CustomFieldsBundle\\\\Form\\\\DataTransformer\\\\CustomFieldsGroupToIdTransformer\\:\\:transform\\(\\) should be contravariant with parameter \\$value \\(mixed\\) of method Symfony\\\\Component\\\\Form\\\\DataTransformerInterface\\:\\:transform\\(\\)$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Form/DataTransformer/CustomFieldsGroupToIdTransformer.php + + - + message: "#^Parameter \\#1 \\$id \\(string\\) of method Chill\\\\CustomFieldsBundle\\\\Form\\\\DataTransformer\\\\CustomFieldsGroupToIdTransformer\\:\\:reverseTransform\\(\\) should be contravariant with parameter \\$value \\(mixed\\) of method Symfony\\\\Component\\\\Form\\\\DataTransformerInterface\\:\\:reverseTransform\\(\\)$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Form/DataTransformer/CustomFieldsGroupToIdTransformer.php + + - + message: "#^Parameter \\#2 \\$query \\(Doctrine\\\\ORM\\\\QueryBuilder\\) of method Chill\\\\DocGeneratorBundle\\\\Controller\\\\AdminDocGeneratorTemplateController\\:\\:orderQuery\\(\\) should be contravariant with parameter \\$query \\(mixed\\) of method Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\CRUDController\\:\\:orderQuery\\(\\)$#" + count: 1 + path: src/Bundle/ChillDocGeneratorBundle/Controller/AdminDocGeneratorTemplateController.php + + - + message: "#^Parameter \\#1 \\$object \\(Doctrine\\\\Common\\\\Collections\\\\Collection\\) of method Chill\\\\DocGeneratorBundle\\\\Serializer\\\\Normalizer\\\\CollectionDocGenNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" + count: 2 + path: src/Bundle/ChillDocGeneratorBundle/Serializer/Normalizer/CollectionDocGenNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\DocGeneratorBundle\\\\Serializer\\\\Normalizer\\\\CollectionDocGenNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\ContextAwareNormalizerInterface\\:\\:supportsNormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillDocGeneratorBundle/Serializer/Normalizer/CollectionDocGenNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\DocGeneratorBundle\\\\Serializer\\\\Normalizer\\\\CollectionDocGenNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillDocGeneratorBundle/Serializer/Normalizer/CollectionDocGenNormalizer.php + + - + message: "#^Return type \\(array\\|ArrayObject\\|bool\\|float\\|int\\|string\\|void\\|null\\) of method Chill\\\\DocGeneratorBundle\\\\Serializer\\\\Normalizer\\\\CollectionDocGenNormalizer\\:\\:normalize\\(\\) should be covariant with return type \\(array\\|ArrayObject\\|bool\\|float\\|int\\|string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" + count: 2 + path: src/Bundle/ChillDocGeneratorBundle/Serializer/Normalizer/CollectionDocGenNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\DocGeneratorBundle\\\\Serializer\\\\Normalizer\\\\DocGenObjectNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" + count: 1 + path: src/Bundle/ChillDocGeneratorBundle/Serializer/Normalizer/DocGenObjectNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\DocGeneratorBundle\\\\Serializer\\\\Normalizer\\\\DocGenObjectNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillDocGeneratorBundle/Serializer/Normalizer/DocGenObjectNormalizer.php + + - + message: "#^Return type \\(Chill\\\\MainBundle\\\\Entity\\\\Scope\\|null\\) of method Chill\\\\DocStoreBundle\\\\Entity\\\\PersonDocument\\:\\:getScope\\(\\) should be covariant with return type \\(Chill\\\\MainBundle\\\\Entity\\\\Scope\\) of method Chill\\\\MainBundle\\\\Entity\\\\HasScopeInterface\\:\\:getScope\\(\\)$#" + count: 1 + path: src/Bundle/ChillDocStoreBundle/Entity/PersonDocument.php + + - + message: "#^Parameter \\#2 \\$subject \\(Chill\\\\DocStoreBundle\\\\Entity\\\\PersonDocument\\) of method Chill\\\\DocStoreBundle\\\\Security\\\\Authorization\\\\PersonDocumentVoter\\:\\:voteOnAttribute\\(\\) should be contravariant with parameter \\$subject \\(mixed\\) of method Symfony\\\\Component\\\\Security\\\\Core\\\\Authorization\\\\Voter\\\\Voter\\:\\:voteOnAttribute\\(\\)$#" + count: 1 + path: src/Bundle/ChillDocStoreBundle/Security/Authorization/PersonDocumentVoter.php + + - + message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\DocStoreBundle\\\\Serializer\\\\Normalizer\\\\StoredObjectDenormalizer\\:\\:denormalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:denormalize\\(\\)$#" + count: 1 + path: src/Bundle/ChillDocStoreBundle/Serializer/Normalizer/StoredObjectDenormalizer.php + + - + message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\DocStoreBundle\\\\Serializer\\\\Normalizer\\\\StoredObjectDenormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillDocStoreBundle/Serializer/Normalizer/StoredObjectDenormalizer.php + + - + message: "#^Parameter \\#1 \\$object \\(Chill\\\\DocStoreBundle\\\\Entity\\\\AccompanyingCourseDocument\\) of method Chill\\\\DocStoreBundle\\\\Workflow\\\\AccompanyingCourseDocumentWorkflowHandler\\:\\:getRelatedObjects\\(\\) should be contravariant with parameter \\$object \\(object\\) of method Chill\\\\MainBundle\\\\Workflow\\\\EntityWorkflowHandlerInterface\\:\\:getRelatedObjects\\(\\)$#" + count: 1 + path: src/Bundle/ChillDocStoreBundle/Workflow/AccompanyingCourseDocumentWorkflowHandler.php + + - + message: "#^Parameter \\#1 \\$value \\(null\\) of method Chill\\\\EventBundle\\\\Form\\\\ChoiceLoader\\\\EventChoiceLoader\\:\\:loadChoiceList\\(\\) should be contravariant with parameter \\$value \\(\\(callable\\(\\)\\: mixed\\)\\|null\\) of method Symfony\\\\Component\\\\Form\\\\ChoiceList\\\\Loader\\\\ChoiceLoaderInterface\\:\\:loadChoiceList\\(\\)$#" + count: 1 + path: src/Bundle/ChillEventBundle/Form/ChoiceLoader/EventChoiceLoader.php + + - + message: "#^Parameter \\#2 \\$value \\(null\\) of method Chill\\\\EventBundle\\\\Form\\\\ChoiceLoader\\\\EventChoiceLoader\\:\\:loadChoicesForValues\\(\\) should be contravariant with parameter \\$value \\(\\(callable\\(\\)\\: mixed\\)\\|null\\) of method Symfony\\\\Component\\\\Form\\\\ChoiceList\\\\Loader\\\\ChoiceLoaderInterface\\:\\:loadChoicesForValues\\(\\)$#" + count: 1 + path: src/Bundle/ChillEventBundle/Form/ChoiceLoader/EventChoiceLoader.php + + - + message: "#^Parameter \\#2 \\$value \\(null\\) of method Chill\\\\EventBundle\\\\Form\\\\ChoiceLoader\\\\EventChoiceLoader\\:\\:loadValuesForChoices\\(\\) should be contravariant with parameter \\$value \\(\\(callable\\(\\)\\: mixed\\)\\|null\\) of method Symfony\\\\Component\\\\Form\\\\ChoiceList\\\\Loader\\\\ChoiceLoaderInterface\\:\\:loadValuesForChoices\\(\\)$#" + count: 1 + path: src/Bundle/ChillEventBundle/Form/ChoiceLoader/EventChoiceLoader.php + + - + message: "#^Parameter \\#2 \\$subject \\(Chill\\\\EventBundle\\\\Entity\\\\Event\\) of method Chill\\\\EventBundle\\\\Security\\\\Authorization\\\\EventVoter\\:\\:voteOnAttribute\\(\\) should be contravariant with parameter \\$subject \\(mixed\\) of method Symfony\\\\Component\\\\Security\\\\Core\\\\Authorization\\\\Voter\\\\Voter\\:\\:voteOnAttribute\\(\\)$#" + count: 1 + path: src/Bundle/ChillEventBundle/Security/Authorization/EventVoter.php + + - + message: "#^Parameter \\#2 \\$subject \\(Chill\\\\EventBundle\\\\Entity\\\\Participation\\) of method Chill\\\\EventBundle\\\\Security\\\\Authorization\\\\ParticipationVoter\\:\\:voteOnAttribute\\(\\) should be contravariant with parameter \\$subject \\(mixed\\) of method Symfony\\\\Component\\\\Security\\\\Core\\\\Authorization\\\\Voter\\\\Voter\\:\\:voteOnAttribute\\(\\)$#" + count: 1 + path: src/Bundle/ChillEventBundle/Security/Authorization/ParticipationVoter.php + + - + message: "#^Parameter \\#1 \\$entity \\(Chill\\\\EventBundle\\\\Entity\\\\Event\\) of method Chill\\\\EventBundle\\\\Timeline\\\\TimelineEventProvider\\:\\:getEntityTemplate\\(\\) should be contravariant with parameter \\$entity \\(Chill\\\\MainBundle\\\\Timeline\\\\type\\) of method Chill\\\\MainBundle\\\\Timeline\\\\TimelineProviderInterface\\:\\:getEntityTemplate\\(\\)$#" + count: 1 + path: src/Bundle/ChillEventBundle/Timeline/TimelineEventProvider.php + + - + message: "#^Parameter \\#2 \\$type \\(null\\) of method Chill\\\\MainBundle\\\\CRUD\\\\Routing\\\\CRUDRoutesLoader\\:\\:supports\\(\\) should be contravariant with parameter \\$type \\(string\\|null\\) of method Symfony\\\\Component\\\\Config\\\\Loader\\\\LoaderInterface\\:\\:supports\\(\\)$#" + count: 2 + path: src/Bundle/ChillMainBundle/CRUD/Routing/CRUDRoutesLoader.php + + - + message: "#^Parameter \\#2 \\$query \\(Doctrine\\\\ORM\\\\QueryBuilder\\) of method Chill\\\\MainBundle\\\\Controller\\\\LocationApiController\\:\\:orderQuery\\(\\) should be contravariant with parameter \\$query \\(mixed\\) of method Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\AbstractCRUDController\\:\\:orderQuery\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/LocationApiController.php + + - + message: "#^Parameter \\#3 \\$query \\(Doctrine\\\\ORM\\\\QueryBuilder\\) of method Chill\\\\MainBundle\\\\Controller\\\\UserApiController\\:\\:customizeQuery\\(\\) should be contravariant with parameter \\$query \\(mixed\\) of method Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\AbstractCRUDController\\:\\:customizeQuery\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/UserApiController.php + + - + message: "#^Return type \\(object\\|null\\) of method Chill\\\\MainBundle\\\\DependencyInjection\\\\ChillMainExtension\\:\\:getConfiguration\\(\\) should be covariant with return type \\(Symfony\\\\Component\\\\Config\\\\Definition\\\\ConfigurationInterface\\|null\\) of method Symfony\\\\Component\\\\DependencyInjection\\\\Extension\\\\ConfigurationExtensionInterface\\:\\:getConfiguration\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/ChillMainExtension.php + + - + message: "#^Return type \\(object\\|null\\) of method Chill\\\\MainBundle\\\\DependencyInjection\\\\ChillMainExtension\\:\\:getConfiguration\\(\\) should be covariant with return type \\(Symfony\\\\Component\\\\Config\\\\Definition\\\\ConfigurationInterface\\|null\\) of method Symfony\\\\Component\\\\DependencyInjection\\\\Extension\\\\Extension\\:\\:getConfiguration\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/ChillMainExtension.php + + - + message: "#^Parameter \\#1 \\$value \\(null\\) of method Chill\\\\MainBundle\\\\Form\\\\ChoiceLoader\\\\PostalCodeChoiceLoader\\:\\:loadChoiceList\\(\\) should be contravariant with parameter \\$value \\(\\(callable\\(\\)\\: mixed\\)\\|null\\) of method Symfony\\\\Component\\\\Form\\\\ChoiceList\\\\Loader\\\\ChoiceLoaderInterface\\:\\:loadChoiceList\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/ChoiceLoader/PostalCodeChoiceLoader.php + + - + message: "#^Parameter \\#2 \\$value \\(null\\) of method Chill\\\\MainBundle\\\\Form\\\\ChoiceLoader\\\\PostalCodeChoiceLoader\\:\\:loadChoicesForValues\\(\\) should be contravariant with parameter \\$value \\(\\(callable\\(\\)\\: mixed\\)\\|null\\) of method Symfony\\\\Component\\\\Form\\\\ChoiceList\\\\Loader\\\\ChoiceLoaderInterface\\:\\:loadChoicesForValues\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/ChoiceLoader/PostalCodeChoiceLoader.php + + - + message: "#^Parameter \\#2 \\$value \\(null\\) of method Chill\\\\MainBundle\\\\Form\\\\ChoiceLoader\\\\PostalCodeChoiceLoader\\:\\:loadValuesForChoices\\(\\) should be contravariant with parameter \\$value \\(\\(callable\\(\\)\\: mixed\\)\\|null\\) of method Symfony\\\\Component\\\\Form\\\\ChoiceList\\\\Loader\\\\ChoiceLoaderInterface\\:\\:loadValuesForChoices\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/ChoiceLoader/PostalCodeChoiceLoader.php + + - + message: "#^Parameter \\#1 \\$address \\(Chill\\\\MainBundle\\\\Entity\\\\Address\\) of method Chill\\\\MainBundle\\\\Form\\\\DataMapper\\\\AddressDataMapper\\:\\:mapDataToForms\\(\\) should be contravariant with parameter \\$viewData \\(mixed\\) of method Symfony\\\\Component\\\\Form\\\\DataMapperInterface\\:\\:mapDataToForms\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/DataMapper/AddressDataMapper.php + + - + message: "#^Parameter \\#1 \\$forms \\(Iterator\\) of method Chill\\\\MainBundle\\\\Form\\\\DataMapper\\\\AddressDataMapper\\:\\:mapFormsToData\\(\\) should be contravariant with parameter \\$forms \\(iterable\\&Traversable\\) of method Symfony\\\\Component\\\\Form\\\\DataMapperInterface\\:\\:mapFormsToData\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/DataMapper/AddressDataMapper.php + + - + message: "#^Parameter \\#2 \\$address \\(Chill\\\\MainBundle\\\\Entity\\\\Address\\) of method Chill\\\\MainBundle\\\\Form\\\\DataMapper\\\\AddressDataMapper\\:\\:mapFormsToData\\(\\) should be contravariant with parameter \\$viewData \\(mixed\\) of method Symfony\\\\Component\\\\Form\\\\DataMapperInterface\\:\\:mapFormsToData\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/DataMapper/AddressDataMapper.php + + - + message: "#^Parameter \\#2 \\$forms \\(Iterator\\) of method Chill\\\\MainBundle\\\\Form\\\\DataMapper\\\\AddressDataMapper\\:\\:mapDataToForms\\(\\) should be contravariant with parameter \\$forms \\(iterable\\&Traversable\\) of method Symfony\\\\Component\\\\Form\\\\DataMapperInterface\\:\\:mapDataToForms\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/DataMapper/AddressDataMapper.php + + - + message: "#^Parameter \\#1 \\$value \\(string\\) of method Chill\\\\MainBundle\\\\Form\\\\DataTransformer\\\\IdToEntityDataTransformer\\:\\:reverseTransform\\(\\) should be contravariant with parameter \\$value \\(mixed\\) of method Symfony\\\\Component\\\\Form\\\\DataTransformerInterface\\:\\:reverseTransform\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/DataTransformer/IdToEntityDataTransformer.php + + - + message: "#^Parameter \\#1 \\$value \\(array\\\\|Chill\\\\MainBundle\\\\Entity\\\\User\\) of method Chill\\\\MainBundle\\\\Form\\\\Type\\\\DataTransformer\\\\EntityToJsonTransformer\\:\\:transform\\(\\) should be contravariant with parameter \\$value \\(mixed\\) of method Symfony\\\\Component\\\\Form\\\\DataTransformerInterface\\:\\:transform\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/Type/DataTransformer/EntityToJsonTransformer.php + + - + message: "#^Parameter \\#1 \\$array \\(array\\) of method Chill\\\\MainBundle\\\\Form\\\\Type\\\\DataTransformer\\\\MultipleObjectsToIdTransformer\\:\\:transform\\(\\) should be contravariant with parameter \\$value \\(mixed\\) of method Symfony\\\\Component\\\\Form\\\\DataTransformerInterface\\:\\:transform\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/Type/DataTransformer/MultipleObjectsToIdTransformer.php + + - + message: "#^Parameter \\#1 \\$id \\(string\\) of method Chill\\\\MainBundle\\\\Form\\\\Type\\\\DataTransformer\\\\ObjectToIdTransformer\\:\\:reverseTransform\\(\\) should be contravariant with parameter \\$value \\(mixed\\) of method Symfony\\\\Component\\\\Form\\\\DataTransformerInterface\\:\\:reverseTransform\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/Type/DataTransformer/ObjectToIdTransformer.php + + - + message: "#^Parameter \\#2 \\$subject \\(Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflow\\) of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\EntityWorkflowVoter\\:\\:voteOnAttribute\\(\\) should be contravariant with parameter \\$subject \\(mixed\\) of method Symfony\\\\Component\\\\Security\\\\Core\\\\Authorization\\\\Voter\\\\Voter\\:\\:voteOnAttribute\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/Authorization/EntityWorkflowVoter.php + + - + message: "#^Parameter \\#1 \\$entity \\(Chill\\\\MainBundle\\\\Entity\\\\HasCenterInterface\\) of method Chill\\\\MainBundle\\\\Security\\\\Resolver\\\\DefaultCenterResolver\\:\\:resolveCenter\\(\\) should be contravariant with parameter \\$entity \\(object\\) of method Chill\\\\MainBundle\\\\Security\\\\Resolver\\\\CenterResolverInterface\\:\\:resolveCenter\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/Resolver/DefaultCenterResolver.php + + - + message: "#^Parameter \\#1 \\$entity \\(Chill\\\\MainBundle\\\\Entity\\\\HasScopeInterface\\|Chill\\\\MainBundle\\\\Entity\\\\HasScopesInterface\\) of method Chill\\\\MainBundle\\\\Security\\\\Resolver\\\\DefaultScopeResolver\\:\\:resolveScope\\(\\) should be contravariant with parameter \\$entity \\(mixed\\) of method Chill\\\\MainBundle\\\\Security\\\\Resolver\\\\ScopeResolverInterface\\:\\:resolveScope\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/Resolver/DefaultScopeResolver.php + + - + message: "#^Parameter \\#1 \\$address \\(Chill\\\\MainBundle\\\\Entity\\\\Address\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\AddressNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" + count: 2 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/AddressNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\AddressNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\ContextAwareNormalizerInterface\\:\\:supportsNormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/AddressNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\AddressNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/AddressNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\CenterNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/CenterNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\CenterNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/CenterNormalizer.php + + - + message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\CenterNormalizer\\:\\:denormalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:denormalize\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/CenterNormalizer.php + + - + message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\CenterNormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/CenterNormalizer.php + + - + message: "#^Parameter \\#1 \\$collection \\(Chill\\\\MainBundle\\\\Serializer\\\\Model\\\\Collection\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\CollectionNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/CollectionNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\CollectionNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/CollectionNormalizer.php + + - + message: "#^Parameter \\#1 \\$object \\(Chill\\\\MainBundle\\\\Entity\\\\Embeddable\\\\CommentEmbeddable\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\CommentEmbeddableDocGenNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" + count: 2 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/CommentEmbeddableDocGenNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\DateNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" + count: 2 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/DateNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\DateNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\ContextAwareNormalizerInterface\\:\\:supportsNormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/DateNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\DateNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/DateNormalizer.php + + - + message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\DateNormalizer\\:\\:denormalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:denormalize\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/DateNormalizer.php + + - + message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\DateNormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/DateNormalizer.php + + - + message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\DiscriminatedObjectDenormalizer\\:\\:denormalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:denormalize\\(\\)$#" + count: 2 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/DiscriminatedObjectDenormalizer.php + + - + message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\DiscriminatedObjectDenormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\ContextAwareDenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/DiscriminatedObjectDenormalizer.php + + - + message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\DiscriminatedObjectDenormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/DiscriminatedObjectDenormalizer.php + + - + message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\DoctrineExistingEntityNormalizer\\:\\:denormalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:denormalize\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/DoctrineExistingEntityNormalizer.php + + - + message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\DoctrineExistingEntityNormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/DoctrineExistingEntityNormalizer.php + + - + message: "#^Parameter \\#1 \\$object \\(Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflow\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\EntityWorkflowNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/EntityWorkflowNormalizer.php + + - + message: "#^Parameter \\#1 \\$object \\(Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflowStep\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\EntityWorkflowStepNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/EntityWorkflowStepNormalizer.php + + - + message: "#^Parameter \\#1 \\$object \\(Chill\\\\MainBundle\\\\Entity\\\\Notification\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\NotificationNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/NotificationNormalizer.php + + - + message: "#^Return type \\(array\\|ArrayObject\\|bool\\|float\\|int\\|string\\|void\\|null\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\NotificationNormalizer\\:\\:normalize\\(\\) should be covariant with return type \\(array\\|ArrayObject\\|bool\\|float\\|int\\|string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/NotificationNormalizer.php + + - + message: "#^Parameter \\#1 \\$data \\(string\\|null\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\PhonenumberNormalizer\\:\\:denormalize\\(\\) should be contravariant with parameter \\$data \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:denormalize\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/PhonenumberNormalizer.php + + - + message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\PhonenumberNormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/PhonenumberNormalizer.php + + - + message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\PointNormalizer\\:\\:denormalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:denormalize\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/PointNormalizer.php + + - + message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\PointNormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/PointNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\PrivateCommentEmbeddableNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/PrivateCommentEmbeddableNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\UserNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" + count: 2 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/UserNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\UserNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\ContextAwareNormalizerInterface\\:\\:supportsNormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/UserNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\UserNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/UserNormalizer.php + + + - + message: "#^Parameter \\#1 \\$value \\(string\\) of method Chill\\\\MainBundle\\\\Validation\\\\Validator\\\\ValidPhonenumber\\:\\:validate\\(\\) should be contravariant with parameter \\$value \\(mixed\\) of method Symfony\\\\Component\\\\Validator\\\\ConstraintValidatorInterface\\:\\:validate\\(\\)$#" + count: 2 + path: src/Bundle/ChillMainBundle/Validation/Validator/ValidPhonenumber.php + + - + message: "#^Parameter \\#2 \\$constraint \\(Chill\\\\MainBundle\\\\Validation\\\\Constraint\\\\PhonenumberConstraint\\) of method Chill\\\\MainBundle\\\\Validation\\\\Validator\\\\ValidPhonenumber\\:\\:validate\\(\\) should be contravariant with parameter \\$constraint \\(Symfony\\\\Component\\\\Validator\\\\Constraint\\) of method Symfony\\\\Component\\\\Validator\\\\ConstraintValidatorInterface\\:\\:validate\\(\\)$#" + count: 2 + path: src/Bundle/ChillMainBundle/Validation/Validator/ValidPhonenumber.php + + - + message: "#^Parameter \\#1 \\$value \\(object\\) of method Chill\\\\MainBundle\\\\Validator\\\\Constraints\\\\Entity\\\\UserCircleConsistencyValidator\\:\\:validate\\(\\) should be contravariant with parameter \\$value \\(mixed\\) of method Symfony\\\\Component\\\\Validator\\\\ConstraintValidatorInterface\\:\\:validate\\(\\)$#" + count: 2 + path: src/Bundle/ChillMainBundle/Validator/Constraints/Entity/UserCircleConsistencyValidator.php + + - + message: "#^Parameter \\#2 \\$constraint \\(Chill\\\\MainBundle\\\\Validator\\\\Constraints\\\\Entity\\\\UserCircleConsistency\\) of method Chill\\\\MainBundle\\\\Validator\\\\Constraints\\\\Entity\\\\UserCircleConsistencyValidator\\:\\:validate\\(\\) should be contravariant with parameter \\$constraint \\(Symfony\\\\Component\\\\Validator\\\\Constraint\\) of method Symfony\\\\Component\\\\Validator\\\\ConstraintValidatorInterface\\:\\:validate\\(\\)$#" + count: 2 + path: src/Bundle/ChillMainBundle/Validator/Constraints/Entity/UserCircleConsistencyValidator.php + + - + message: "#^Parameter \\#1 \\$value \\(Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflow\\) of method Chill\\\\MainBundle\\\\Workflow\\\\Validator\\\\EntityWorkflowCreationValidator\\:\\:validate\\(\\) should be contravariant with parameter \\$value \\(mixed\\) of method Symfony\\\\Component\\\\Validator\\\\ConstraintValidatorInterface\\:\\:validate\\(\\)$#" + count: 2 + path: src/Bundle/ChillMainBundle/Workflow/Validator/EntityWorkflowCreationValidator.php + + - + message: "#^Parameter \\#1 \\$value \\(Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflowStep\\) of method Chill\\\\MainBundle\\\\Workflow\\\\Validator\\\\StepDestValidValidator\\:\\:validate\\(\\) should be contravariant with parameter \\$value \\(mixed\\) of method Symfony\\\\Component\\\\Validator\\\\ConstraintValidatorInterface\\:\\:validate\\(\\)$#" + count: 2 + path: src/Bundle/ChillMainBundle/Workflow/Validator/StepDestValidValidator.php + + - + message: "#^Parameter \\#3 \\$query \\(Doctrine\\\\ORM\\\\QueryBuilder\\) of method Chill\\\\PersonBundle\\\\Controller\\\\HouseholdCompositionTypeApiController\\:\\:customizeQuery\\(\\) should be contravariant with parameter \\$query \\(mixed\\) of method Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\AbstractCRUDController\\:\\:customizeQuery\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/HouseholdCompositionTypeApiController.php + + - + message: "#^Return type \\(Doctrine\\\\Common\\\\Collections\\\\Collection\\) of method Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\:\\:getScopes\\(\\) should be covariant with return type \\(iterable\\\\) of method Chill\\\\MainBundle\\\\Entity\\\\HasScopesInterface\\:\\:getScopes\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php + + - + message: "#^Return type \\(Chill\\\\MainBundle\\\\Entity\\\\Center\\|null\\) of method Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:getCenter\\(\\) should be covariant with return type \\(Chill\\\\MainBundle\\\\Entity\\\\Center\\) of method Chill\\\\MainBundle\\\\Entity\\\\HasCenterInterface\\:\\:getCenter\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Person.php + + - + message: "#^Parameter \\#1 \\$value \\(null\\) of method Chill\\\\PersonBundle\\\\Form\\\\ChoiceLoader\\\\PersonChoiceLoader\\:\\:loadChoiceList\\(\\) should be contravariant with parameter \\$value \\(\\(callable\\(\\)\\: mixed\\)\\|null\\) of method Symfony\\\\Component\\\\Form\\\\ChoiceList\\\\Loader\\\\ChoiceLoaderInterface\\:\\:loadChoiceList\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Form/ChoiceLoader/PersonChoiceLoader.php + + - + message: "#^Parameter \\#2 \\$value \\(null\\) of method Chill\\\\PersonBundle\\\\Form\\\\ChoiceLoader\\\\PersonChoiceLoader\\:\\:loadChoicesForValues\\(\\) should be contravariant with parameter \\$value \\(\\(callable\\(\\)\\: mixed\\)\\|null\\) of method Symfony\\\\Component\\\\Form\\\\ChoiceList\\\\Loader\\\\ChoiceLoaderInterface\\:\\:loadChoicesForValues\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Form/ChoiceLoader/PersonChoiceLoader.php + + - + message: "#^Parameter \\#2 \\$value \\(null\\) of method Chill\\\\PersonBundle\\\\Form\\\\ChoiceLoader\\\\PersonChoiceLoader\\:\\:loadValuesForChoices\\(\\) should be contravariant with parameter \\$value \\(\\(callable\\(\\)\\: mixed\\)\\|null\\) of method Symfony\\\\Component\\\\Form\\\\ChoiceList\\\\Loader\\\\ChoiceLoaderInterface\\:\\:loadValuesForChoices\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Form/ChoiceLoader/PersonChoiceLoader.php + + - + message: "#^Parameter \\#2 \\$viewData \\(Doctrine\\\\Common\\\\Collections\\\\Collection\\) of method Chill\\\\PersonBundle\\\\Form\\\\DataMapper\\\\PersonAltNameDataMapper\\:\\:mapFormsToData\\(\\) should be contravariant with parameter \\$viewData \\(mixed\\) of method Symfony\\\\Component\\\\Form\\\\DataMapperInterface\\:\\:mapFormsToData\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Form/DataMapper/PersonAltNameDataMapper.php + + - + message: "#^Parameter \\#3 \\$limit \\(int\\) of method Chill\\\\PersonBundle\\\\Repository\\\\AccompanyingPeriod\\\\AccompanyingPeriodWorkEvaluationRepository\\:\\:findBy\\(\\) should be contravariant with parameter \\$limit \\(int\\|null\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\\\:\\:findBy\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriod/AccompanyingPeriodWorkEvaluationRepository.php + + - + message: "#^Parameter \\#4 \\$offset \\(int\\) of method Chill\\\\PersonBundle\\\\Repository\\\\AccompanyingPeriod\\\\AccompanyingPeriodWorkEvaluationRepository\\:\\:findBy\\(\\) should be contravariant with parameter \\$offset \\(int\\|null\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\\\:\\:findBy\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriod/AccompanyingPeriodWorkEvaluationRepository.php + + - + message: "#^Parameter \\#3 \\$limit \\(int\\) of method Chill\\\\PersonBundle\\\\Repository\\\\Household\\\\HouseholdCompositionRepository\\:\\:findBy\\(\\) should be contravariant with parameter \\$limit \\(int\\|null\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\\\:\\:findBy\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Repository/Household/HouseholdCompositionRepository.php + + - + message: "#^Parameter \\#4 \\$offset \\(int\\) of method Chill\\\\PersonBundle\\\\Repository\\\\Household\\\\HouseholdCompositionRepository\\:\\:findBy\\(\\) should be contravariant with parameter \\$offset \\(int\\|null\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\\\:\\:findBy\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Repository/Household/HouseholdCompositionRepository.php + + - + message: "#^Parameter \\#3 \\$limit \\(int\\) of method Chill\\\\PersonBundle\\\\Repository\\\\Household\\\\HouseholdCompositionRepositoryInterface\\:\\:findBy\\(\\) should be contravariant with parameter \\$limit \\(int\\|null\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\\\:\\:findBy\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Repository/Household/HouseholdCompositionRepositoryInterface.php + + - + message: "#^Parameter \\#4 \\$offset \\(int\\) of method Chill\\\\PersonBundle\\\\Repository\\\\Household\\\\HouseholdCompositionRepositoryInterface\\:\\:findBy\\(\\) should be contravariant with parameter \\$offset \\(int\\|null\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\\\:\\:findBy\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Repository/Household/HouseholdCompositionRepositoryInterface.php + + - + message: "#^Return type \\(class\\-string\\) of method Chill\\\\PersonBundle\\\\Repository\\\\SocialWork\\\\EvaluationRepository\\:\\:getClassName\\(\\) should be covariant with return type \\(class\\-string\\\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\\\:\\:getClassName\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Repository/SocialWork/EvaluationRepository.php + + - + message: "#^Return type \\(class\\-string\\) of method Chill\\\\PersonBundle\\\\Repository\\\\SocialWork\\\\EvaluationRepositoryInterface\\:\\:getClassName\\(\\) should be covariant with return type \\(class\\-string\\\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\\\:\\:getClassName\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Repository/SocialWork/EvaluationRepositoryInterface.php + + - + message: "#^Return type \\(class\\-string\\) of method Chill\\\\PersonBundle\\\\Repository\\\\SocialWork\\\\GoalRepository\\:\\:getClassName\\(\\) should be covariant with return type \\(class\\-string\\\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\\\:\\:getClassName\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Repository/SocialWork/GoalRepository.php + + - + message: "#^Return type \\(class\\-string\\) of method Chill\\\\PersonBundle\\\\Repository\\\\SocialWork\\\\ResultRepository\\:\\:getClassName\\(\\) should be covariant with return type \\(class\\-string\\\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\\\:\\:getClassName\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Repository/SocialWork/ResultRepository.php + + - + message: "#^Return type \\(class\\-string\\) of method Chill\\\\PersonBundle\\\\Repository\\\\SocialWork\\\\SocialActionRepository\\:\\:getClassName\\(\\) should be covariant with return type \\(class\\-string\\\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\\\:\\:getClassName\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Repository/SocialWork/SocialActionRepository.php + + - + message: "#^Return type \\(class\\-string\\) of method Chill\\\\PersonBundle\\\\Repository\\\\SocialWork\\\\SocialIssueRepository\\:\\:getClassName\\(\\) should be covariant with return type \\(class\\-string\\\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\\\:\\:getClassName\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Repository/SocialWork/SocialIssueRepository.php + + - + message: "#^Parameter \\#2 \\$subject \\(Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodWorkEvaluationDocument\\) of method Chill\\\\PersonBundle\\\\Security\\\\Authorization\\\\AccompanyingPeriodWorkEvaluationDocumentVoter\\:\\:voteOnAttribute\\(\\) should be contravariant with parameter \\$subject \\(mixed\\) of method Symfony\\\\Component\\\\Security\\\\Core\\\\Authorization\\\\Voter\\\\Voter\\:\\:voteOnAttribute\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Security/Authorization/AccompanyingPeriodWorkEvaluationDocumentVoter.php + + - + message: "#^Parameter \\#2 \\$subject \\(Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodWorkEvaluation\\) of method Chill\\\\PersonBundle\\\\Security\\\\Authorization\\\\AccompanyingPeriodWorkEvaluationVoter\\:\\:voteOnAttribute\\(\\) should be contravariant with parameter \\$subject \\(mixed\\) of method Symfony\\\\Component\\\\Security\\\\Core\\\\Authorization\\\\Voter\\\\Voter\\:\\:voteOnAttribute\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Security/Authorization/AccompanyingPeriodWorkEvaluationVoter.php + + - + message: "#^Parameter \\#2 \\$subject \\(Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodWork\\) of method Chill\\\\PersonBundle\\\\Security\\\\Authorization\\\\AccompanyingPeriodWorkVoter\\:\\:voteOnAttribute\\(\\) should be contravariant with parameter \\$subject \\(mixed\\) of method Symfony\\\\Component\\\\Security\\\\Core\\\\Authorization\\\\Voter\\\\Voter\\:\\:voteOnAttribute\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Security/Authorization/AccompanyingPeriodWorkVoter.php + + - + message: "#^Parameter \\#1 \\$period \\(Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\|null\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodDocGenNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodDocGenNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodDocGenNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\ContextAwareNormalizerInterface\\:\\:supportsNormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodDocGenNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodDocGenNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodDocGenNormalizer.php + + - + message: "#^Parameter \\#1 \\$origin \\(Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\Origin\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodOriginNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodOriginNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodOriginNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodOriginNormalizer.php + + - + message: "#^Parameter \\#1 \\$participation \\(Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriodParticipation\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodParticipationNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodParticipationNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodParticipationNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodParticipationNormalizer.php + + - + message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodResourceNormalizer\\:\\:denormalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:denormalize\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodResourceNormalizer.php + + - + message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodResourceNormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodResourceNormalizer.php + + - + message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodWorkDenormalizer\\:\\:denormalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:denormalize\\(\\)$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkDenormalizer.php + + - + message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodWorkDenormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\ContextAwareDenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkDenormalizer.php + + - + message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodWorkDenormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkDenormalizer.php + + - + message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodWorkEvaluationDenormalizer\\:\\:denormalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:denormalize\\(\\)$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkEvaluationDenormalizer.php + + - + message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodWorkEvaluationDenormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\ContextAwareDenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkEvaluationDenormalizer.php + + - + message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodWorkEvaluationDenormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkEvaluationDenormalizer.php + + - + message: "#^Parameter \\#1 \\$object \\(Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodWorkEvaluation\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodWorkEvaluationNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkEvaluationNormalizer.php + + - + message: "#^Parameter \\#1 \\$object \\(Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodWork\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodWorkNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkNormalizer.php + + - + message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\MembersEditorNormalizer\\:\\:denormalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:denormalize\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/MembersEditorNormalizer.php + + - + message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\MembersEditorNormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/MembersEditorNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\PersonDocGenNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonDocGenNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\PersonDocGenNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\ContextAwareNormalizerInterface\\:\\:supportsNormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonDocGenNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\PersonDocGenNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonDocGenNormalizer.php + + - + message: "#^Parameter \\#1 \\$person \\(Chill\\\\PersonBundle\\\\Entity\\\\Person\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\PersonJsonNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonJsonNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\PersonJsonNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonJsonNormalizer.php + + - + message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\PersonJsonNormalizer\\:\\:denormalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:denormalize\\(\\)$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonJsonNormalizer.php + + - + message: "#^Parameter \\#3 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\PersonJsonNormalizer\\:\\:supportsDenormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\DenormalizerInterface\\:\\:supportsDenormalization\\(\\)$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonJsonNormalizer.php + + - + message: "#^Parameter \\#1 \\$relation \\(Chill\\\\PersonBundle\\\\Entity\\\\Relationships\\\\Relationship\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\RelationshipDocGenNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/RelationshipDocGenNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\RelationshipDocGenNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\ContextAwareNormalizerInterface\\:\\:supportsNormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/RelationshipDocGenNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\RelationshipDocGenNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/RelationshipDocGenNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\SocialActionNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/SocialActionNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\SocialActionNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/SocialActionNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\SocialIssueNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/SocialIssueNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\SocialIssueNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\ContextAwareNormalizerInterface\\:\\:supportsNormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/SocialIssueNormalizer.php + + - + message: "#^Parameter \\#2 \\$format \\(string\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\SocialIssueNormalizer\\:\\:supportsNormalization\\(\\) should be contravariant with parameter \\$format \\(string\\|null\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:supportsNormalization\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/SocialIssueNormalizer.php + + - + message: "#^Parameter \\#1 \\$object \\(Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflow\\) of method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\WorkflowNormalizer\\:\\:normalize\\(\\) should be contravariant with parameter \\$object \\(mixed\\) of method Symfony\\\\Component\\\\Serializer\\\\Normalizer\\\\NormalizerInterface\\:\\:normalize\\(\\)$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/WorkflowNormalizer.php + + + - + message: "#^Parameter \\#1 \\$object \\(Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodWorkEvaluationDocument\\) of method Chill\\\\PersonBundle\\\\Workflow\\\\AccompanyingPeriodWorkEvaluationDocumentWorkflowHandler\\:\\:getRelatedObjects\\(\\) should be contravariant with parameter \\$object \\(object\\) of method Chill\\\\MainBundle\\\\Workflow\\\\EntityWorkflowHandlerInterface\\:\\:getRelatedObjects\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Workflow/AccompanyingPeriodWorkEvaluationDocumentWorkflowHandler.php + + - + message: "#^Parameter \\#1 \\$object \\(Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodWorkEvaluation\\) of method Chill\\\\PersonBundle\\\\Workflow\\\\AccompanyingPeriodWorkEvaluationWorkflowHandler\\:\\:getRelatedObjects\\(\\) should be contravariant with parameter \\$object \\(object\\) of method Chill\\\\MainBundle\\\\Workflow\\\\EntityWorkflowHandlerInterface\\:\\:getRelatedObjects\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Workflow/AccompanyingPeriodWorkEvaluationWorkflowHandler.php + + - + message: "#^Parameter \\#1 \\$object \\(Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodWork\\) of method Chill\\\\PersonBundle\\\\Workflow\\\\AccompanyingPeriodWorkWorkflowHandler\\:\\:getRelatedObjects\\(\\) should be contravariant with parameter \\$object \\(object\\) of method Chill\\\\MainBundle\\\\Workflow\\\\EntityWorkflowHandlerInterface\\:\\:getRelatedObjects\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Workflow/AccompanyingPeriodWorkWorkflowHandler.php + + - + message: "#^Return type \\(Chill\\\\MainBundle\\\\Entity\\\\Center\\|null\\) of method Chill\\\\TaskBundle\\\\Entity\\\\AbstractTask\\:\\:getCenter\\(\\) should be covariant with return type \\(Chill\\\\MainBundle\\\\Entity\\\\Center\\) of method Chill\\\\MainBundle\\\\Entity\\\\HasCenterInterface\\:\\:getCenter\\(\\)$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Entity/AbstractTask.php + + - + message: "#^Return type \\(Chill\\\\MainBundle\\\\Entity\\\\Scope\\|null\\) of method Chill\\\\TaskBundle\\\\Entity\\\\AbstractTask\\:\\:getScope\\(\\) should be covariant with return type \\(Chill\\\\MainBundle\\\\Entity\\\\Scope\\) of method Chill\\\\MainBundle\\\\Entity\\\\HasScopeInterface\\:\\:getScope\\(\\)$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Entity/AbstractTask.php + + - + message: "#^Parameter \\#3 \\$entity \\(Chill\\\\ThirdPartyBundle\\\\Entity\\\\ThirdParty\\) of method Chill\\\\ThirdPartyBundle\\\\Controller\\\\ThirdPartyController\\:\\:onPostFetchEntity\\(\\) should be contravariant with parameter \\$entity \\(mixed\\) of method Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\CRUDController\\:\\:onPostFetchEntity\\(\\)$#" + count: 1 + path: src/Bundle/ChillThirdPartyBundle/Controller/ThirdPartyController.php + + - + message: "#^Parameter \\#1 \\$createdAt \\(DateTimeImmutable\\) of method Chill\\\\ThirdPartyBundle\\\\Entity\\\\ThirdParty\\:\\:setCreatedAt\\(\\) should be contravariant with parameter \\$datetime \\(DateTimeInterface\\) of method Chill\\\\MainBundle\\\\Doctrine\\\\Model\\\\TrackCreationInterface\\:\\:setCreatedAt\\(\\)$#" + count: 1 + path: src/Bundle/ChillThirdPartyBundle/Entity/ThirdParty.php + + - + message: "#^Parameter \\#1 \\$updatedAt \\(DateTimeImmutable\\) of method Chill\\\\ThirdPartyBundle\\\\Entity\\\\ThirdParty\\:\\:setUpdatedAt\\(\\) should be contravariant with parameter \\$datetime \\(DateTimeInterface\\) of method Chill\\\\MainBundle\\\\Doctrine\\\\Model\\\\TrackUpdateInterface\\:\\:setUpdatedAt\\(\\)$#" + count: 1 + path: src/Bundle/ChillThirdPartyBundle/Entity/ThirdParty.php + + - + message: "#^Parameter \\#3 \\$limit \\(null\\) of method Chill\\\\ThirdPartyBundle\\\\Repository\\\\ThirdPartyRepository\\:\\:findBy\\(\\) should be contravariant with parameter \\$limit \\(int\\|null\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\\\:\\:findBy\\(\\)$#" + count: 1 + path: src/Bundle/ChillThirdPartyBundle/Repository/ThirdPartyRepository.php + + - + message: "#^Parameter \\#4 \\$offset \\(null\\) of method Chill\\\\ThirdPartyBundle\\\\Repository\\\\ThirdPartyRepository\\:\\:findBy\\(\\) should be contravariant with parameter \\$offset \\(int\\|null\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\\\:\\:findBy\\(\\)$#" + count: 1 + path: src/Bundle/ChillThirdPartyBundle/Repository/ThirdPartyRepository.php + + - + message: "#^Parameter \\#2 \\$subject \\(Chill\\\\ThirdPartyBundle\\\\Entity\\\\ThirdParty\\|null\\) of method Chill\\\\ThirdPartyBundle\\\\Security\\\\Voter\\\\ThirdPartyVoter\\:\\:voteOnAttribute\\(\\) should be contravariant with parameter \\$subject \\(mixed\\) of method Symfony\\\\Component\\\\Security\\\\Core\\\\Authorization\\\\Voter\\\\Voter\\:\\:voteOnAttribute\\(\\)$#" + count: 1 + path: src/Bundle/ChillThirdPartyBundle/Security/Voter/ThirdPartyVoter.php + + - + message: "#^Parameter \\#1 \\$document \\(Chill\\\\DocStoreBundle\\\\Entity\\\\StoredObject\\) of method Chill\\\\WopiBundle\\\\Service\\\\Wopi\\\\ChillDocumentManager\\:\\:getBasename\\(\\) should be contravariant with parameter \\$document \\(ChampsLibres\\\\WopiLib\\\\Contract\\\\Entity\\\\Document\\) of method ChampsLibres\\\\WopiLib\\\\Contract\\\\Service\\\\DocumentManagerInterface\\:\\:getBasename\\(\\)$#" + count: 1 + path: src/Bundle/ChillWopiBundle/src/Service/Wopi/ChillDocumentManager.php + + - + message: "#^Parameter \\#1 \\$document \\(Chill\\\\DocStoreBundle\\\\Entity\\\\StoredObject\\) of method Chill\\\\WopiBundle\\\\Service\\\\Wopi\\\\ChillDocumentManager\\:\\:getCreationDate\\(\\) should be contravariant with parameter \\$document \\(ChampsLibres\\\\WopiLib\\\\Contract\\\\Entity\\\\Document\\) of method ChampsLibres\\\\WopiLib\\\\Contract\\\\Service\\\\DocumentManagerInterface\\:\\:getCreationDate\\(\\)$#" + count: 1 + path: src/Bundle/ChillWopiBundle/src/Service/Wopi/ChillDocumentManager.php + + - + message: "#^Parameter \\#1 \\$document \\(Chill\\\\DocStoreBundle\\\\Entity\\\\StoredObject\\) of method Chill\\\\WopiBundle\\\\Service\\\\Wopi\\\\ChillDocumentManager\\:\\:getDocumentId\\(\\) should be contravariant with parameter \\$document \\(ChampsLibres\\\\WopiLib\\\\Contract\\\\Entity\\\\Document\\) of method ChampsLibres\\\\WopiLib\\\\Contract\\\\Service\\\\DocumentManagerInterface\\:\\:getDocumentId\\(\\)$#" + count: 1 + path: src/Bundle/ChillWopiBundle/src/Service/Wopi/ChillDocumentManager.php + + - + message: "#^Parameter \\#1 \\$document \\(Chill\\\\DocStoreBundle\\\\Entity\\\\StoredObject\\) of method Chill\\\\WopiBundle\\\\Service\\\\Wopi\\\\ChillDocumentManager\\:\\:getLastModifiedDate\\(\\) should be contravariant with parameter \\$document \\(ChampsLibres\\\\WopiLib\\\\Contract\\\\Entity\\\\Document\\) of method ChampsLibres\\\\WopiLib\\\\Contract\\\\Service\\\\DocumentManagerInterface\\:\\:getLastModifiedDate\\(\\)$#" + count: 1 + path: src/Bundle/ChillWopiBundle/src/Service/Wopi/ChillDocumentManager.php diff --git a/phpstan-baseline-level-4.neon b/phpstan-baseline-level-4.neon new file mode 100644 index 000000000..1b7bb5a07 --- /dev/null +++ b/phpstan-baseline-level-4.neon @@ -0,0 +1,4798 @@ +parameters: + ignoreErrors: + - + message: "#^Access to an undefined property Chill\\\\ActivityBundle\\\\Entity\\\\Activity\\:\\:\\$personsAssociated\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Controller/ActivityController.php + + - + message: "#^Access to an undefined property Chill\\\\ActivityBundle\\\\Entity\\\\Activity\\:\\:\\$personsNotAssociated\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Controller/ActivityController.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Serializer\\\\SerializerInterface\\:\\:normalize\\(\\)\\.$#" + count: 2 + path: src/Bundle/ChillActivityBundle/Controller/ActivityController.php + + - + message: "#^Method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) invoked with 2 parameters, 1 required\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Controller/ActivityController.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and 'ChillActivityBundle…'\\|'ChillActivityBundle…' will always evaluate to false\\.$#" + count: 3 + path: src/Bundle/ChillActivityBundle/Controller/ActivityController.php + + - + message: "#^Method Chill\\\\ActivityBundle\\\\Controller\\\\ActivityReasonCategoryController\\:\\:createCreateForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Controller/ActivityReasonCategoryController.php + + - + message: "#^Method Chill\\\\ActivityBundle\\\\Controller\\\\ActivityReasonCategoryController\\:\\:createEditForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Controller/ActivityReasonCategoryController.php + + - + message: "#^Method Chill\\\\ActivityBundle\\\\Controller\\\\ActivityReasonController\\:\\:createCreateForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Controller/ActivityReasonController.php + + - + message: "#^Method Chill\\\\ActivityBundle\\\\Controller\\\\ActivityReasonController\\:\\:createEditForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Controller/ActivityReasonController.php + + - + message: "#^Else branch is unreachable because previous condition is always true\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/DataFixtures/ORM/LoadActivity.php + + - + message: "#^Strict comparison using \\!\\=\\= between null and Chill\\\\ActivityBundle\\\\Entity\\\\ActivityReason will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/DataFixtures/ORM/LoadActivity.php + + - + message: "#^Unreachable statement \\- code above always terminates\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/DataFixtures/ORM/LoadActivityNotifications.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\NodeDefinition\\:\\:children\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/DependencyInjection/Configuration.php + + - + message: "#^Method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\TreeBuilder\\:\\:getRootNode\\(\\) invoked with 1 parameter, 0 required\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/DependencyInjection/Configuration.php + + - + message: "#^Property Chill\\\\ActivityBundle\\\\Entity\\\\Activity\\:\\:\\$user \\(Chill\\\\MainBundle\\\\Entity\\\\User\\) does not accept Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Entity/Activity.php + + - + message: "#^Property Chill\\\\ActivityBundle\\\\Entity\\\\ActivityPresence\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Entity/ActivityPresence.php + + - + message: "#^Property Chill\\\\ActivityBundle\\\\Entity\\\\ActivityReason\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Entity/ActivityReason.php + + - + message: "#^Argument of an invalid type string supplied for foreach, only iterables are supported\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Entity/ActivityReasonCategory.php + + - + message: "#^Binary operation \"\\.\" between 'ActivityReasonCateg…' and array results in an error\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Entity/ActivityReasonCategory.php + + - + message: "#^Method Chill\\\\ActivityBundle\\\\Entity\\\\ActivityReasonCategory\\:\\:getName\\(\\) should return array but returns string\\.$#" + count: 3 + path: src/Bundle/ChillActivityBundle/Entity/ActivityReasonCategory.php + + - + message: "#^Property Chill\\\\ActivityBundle\\\\Entity\\\\ActivityReasonCategory\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Entity/ActivityReasonCategory.php + + - + message: "#^Property Chill\\\\ActivityBundle\\\\Entity\\\\ActivityReasonCategory\\:\\:\\$name \\(string\\) does not accept array\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Entity/ActivityReasonCategory.php + + - + message: "#^Expression on left side of \\?\\? is not nullable\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/EntityListener/ActivityEntityListener.php + + - + message: "#^Property Chill\\\\ActivityBundle\\\\Export\\\\Aggregator\\\\ACPAggregators\\\\DateAggregator\\:\\:\\$translator is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Export/Aggregator/ACPAggregators/DateAggregator.php + + - + message: "#^PHPDoc tag @param for parameter \\$resolver with type Chill\\\\ActivityBundle\\\\Form\\\\OptionsResolverInterface is not subtype of native type Symfony\\\\Component\\\\OptionsResolver\\\\OptionsResolver\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Form/ActivityReasonCategoryType.php + + - + message: "#^Parameter \\$resolver of method Chill\\\\ActivityBundle\\\\Form\\\\ActivityReasonCategoryType\\:\\:configureOptions\\(\\) has invalid type Chill\\\\ActivityBundle\\\\Form\\\\OptionsResolverInterface\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Form/ActivityReasonCategoryType.php + + - + message: "#^Call to an undefined method Doctrine\\\\ORM\\\\EntityRepository\\\\:\\:findByAccompanyingPeriod\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepository.php + + - + message: "#^Call to an undefined method Doctrine\\\\ORM\\\\EntityRepository\\\\:\\:findByPersonImplied\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepository.php + + - + message: "#^Method Chill\\\\ActivityBundle\\\\Repository\\\\ActivityACLAwareRepository\\:\\:findByAccompanyingPeriod\\(\\) has invalid return type Chill\\\\ActivityBundle\\\\Repository\\\\Activity\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepository.php + + - + message: "#^Method Chill\\\\ActivityBundle\\\\Repository\\\\ActivityACLAwareRepository\\:\\:getWhereClause\\(\\) should return array but returns string\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepository.php + + - + message: "#^Property Chill\\\\ActivityBundle\\\\Repository\\\\ActivityACLAwareRepository\\:\\:\\$repository is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepository.php + + - + message: "#^Method Chill\\\\ActivityBundle\\\\Repository\\\\ActivityACLAwareRepositoryInterface\\:\\:findByAccompanyingPeriod\\(\\) has invalid return type Chill\\\\ActivityBundle\\\\Repository\\\\Activity\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepositoryInterface.php + + - + message: "#^Method Chill\\\\ActivityBundle\\\\Repository\\\\ActivityACLAwareRepositoryInterface\\:\\:findByPerson\\(\\) has invalid return type Chill\\\\ActivityBundle\\\\Repository\\\\Activity\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepositoryInterface.php + + - + message: "#^Expression on left side of \\?\\? is not nullable\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Repository/ActivityReasonRepository.php + + - + message: "#^Property Chill\\\\ActivityBundle\\\\Service\\\\DocGenerator\\\\ActivityContext\\:\\:\\$documentCategoryRepository is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Service/DocGenerator/ActivityContext.php + + - + message: "#^Parameter \\$context of method Chill\\\\ActivityBundle\\\\Timeline\\\\TimelineActivityProvider\\:\\:getEntityTemplate\\(\\) has invalid type Chill\\\\MainBundle\\\\Timeline\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Timeline/TimelineActivityProvider.php + + - + message: "#^Parameter \\$entity of method Chill\\\\ActivityBundle\\\\Timeline\\\\TimelineActivityProvider\\:\\:getEntityTemplate\\(\\) has invalid type Chill\\\\MainBundle\\\\Timeline\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Timeline/TimelineActivityProvider.php + + - + message: "#^Result of && is always false\\.$#" + count: 7 + path: src/Bundle/ChillActivityBundle/Validator/Constraints/ActivityValidityValidator.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and Chill\\\\MainBundle\\\\Entity\\\\Embeddable\\\\CommentEmbeddable will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Validator/Constraints/ActivityValidityValidator.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and Chill\\\\MainBundle\\\\Entity\\\\User will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Validator/Constraints/ActivityValidityValidator.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and DateTime will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Validator/Constraints/ActivityValidityValidator.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and Doctrine\\\\Common\\\\Collections\\\\Collection will always evaluate to false\\.$#" + count: 2 + path: src/Bundle/ChillActivityBundle/Validator/Constraints/ActivityValidityValidator.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and bool will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Validator/Constraints/ActivityValidityValidator.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and string will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Validator/Constraints/ActivityValidityValidator.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\NodeDefinition\\:\\:children\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillAsideActivityBundle/src/DependencyInjection/Configuration.php + + - + message: "#^Method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\TreeBuilder\\:\\:getRootNode\\(\\) invoked with 1 parameter, 0 required\\.$#" + count: 1 + path: src/Bundle/ChillAsideActivityBundle/src/DependencyInjection/Configuration.php + + - + message: "#^Property Chill\\\\AsideActivityBundle\\\\Entity\\\\AsideActivity\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillAsideActivityBundle/src/Entity/AsideActivity.php + + - + message: "#^Property Chill\\\\AsideActivityBundle\\\\Entity\\\\AsideActivityCategory\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillAsideActivityBundle/src/Entity/AsideActivityCategory.php + + - + message: "#^Call to method DateTimeImmutable\\:\\:add\\(\\) on a separate line has no effect\\.$#" + count: 1 + path: src/Bundle/ChillAsideActivityBundle/src/Form/AsideActivityFormType.php + + - + message: "#^Call to method DateTimeImmutable\\:\\:setTimezone\\(\\) on a separate line has no effect\\.$#" + count: 1 + path: src/Bundle/ChillAsideActivityBundle/src/Form/AsideActivityFormType.php + + - + message: "#^Property Chill\\\\AsideActivityBundle\\\\Form\\\\AsideActivityFormType\\:\\:\\$storage is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillAsideActivityBundle/src/Form/AsideActivityFormType.php + + - + message: "#^Static call to instance method Chill\\\\BudgetBundle\\\\Calculator\\\\CalculatorInterface\\:\\:getAlias\\(\\)\\.$#" + count: 3 + path: src/Bundle/ChillBudgetBundle/Calculator/CalculatorManager.php + + - + message: "#^Call to an undefined method Chill\\\\BudgetBundle\\\\Entity\\\\AbstractElement\\:\\:getId\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/Controller/AbstractElementController.php + + - + message: "#^Method Chill\\\\BudgetBundle\\\\Controller\\\\AbstractElementController\\:\\:createDeleteForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/Controller/AbstractElementController.php + + - + message: "#^Call to an undefined method Doctrine\\\\ORM\\\\EntityRepository\\\\:\\:findByEntityAndDate\\(\\)\\.$#" + count: 3 + path: src/Bundle/ChillBudgetBundle/Controller/ElementController.php + + - + message: "#^Call to an undefined method Doctrine\\\\ORM\\\\EntityRepository\\\\:\\:findByHousehold\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/Controller/ElementController.php + + - + message: "#^Call to an undefined method Doctrine\\\\ORM\\\\EntityRepository\\\\:\\:findByPerson\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/Controller/ElementController.php + + - + message: "#^Call to an undefined method Doctrine\\\\ORM\\\\EntityRepository\\\\:\\:findByEntityAndDate\\(\\)\\.$#" + count: 3 + path: src/Bundle/ChillBudgetBundle/Controller/ElementController.php + + - + message: "#^Call to an undefined method Doctrine\\\\ORM\\\\EntityRepository\\\\:\\:findByHousehold\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/Controller/ElementController.php + + - + message: "#^Call to an undefined method Doctrine\\\\ORM\\\\EntityRepository\\\\:\\:findByPerson\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/Controller/ElementController.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\NodeDefinition\\:\\:children\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/DependencyInjection/Configuration.php + + - + message: "#^Method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\TreeBuilder\\:\\:getRootNode\\(\\) invoked with 1 parameter, 0 required\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/DependencyInjection/Configuration.php + + - + message: "#^Property Chill\\\\BudgetBundle\\\\Entity\\\\AbstractElement\\:\\:\\$startDate \\(DateTimeImmutable\\) does not accept null\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/Entity/AbstractElement.php + + - + message: "#^Strict comparison using \\=\\=\\= between 0 and string will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/Entity/AbstractElement.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and DateTimeImmutable will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/Entity/AbstractElement.php + + - + message: "#^Property Chill\\\\BudgetBundle\\\\Entity\\\\ChargeKind\\:\\:\\$tags is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/Entity/ChargeKind.php + + - + message: "#^Property Chill\\\\BudgetBundle\\\\Entity\\\\ResourceKind\\:\\:\\$tags is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/Entity/ResourceKind.php + + - + message: "#^Method Chill\\\\BudgetBundle\\\\Repository\\\\ChargeKindRepository\\:\\:findAll\\(\\) has invalid return type Chill\\\\BudgetBundle\\\\Repository\\\\ChargeType\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/Repository/ChargeKindRepository.php + + - + message: "#^Method Chill\\\\BudgetBundle\\\\Repository\\\\ChargeKindRepository\\:\\:findAllActive\\(\\) has invalid return type Chill\\\\BudgetBundle\\\\Repository\\\\ChargeType\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/Repository/ChargeKindRepository.php + + - + message: "#^Method Chill\\\\BudgetBundle\\\\Repository\\\\ChargeKindRepository\\:\\:findAllByType\\(\\) has invalid return type Chill\\\\BudgetBundle\\\\Repository\\\\ChargeType\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/Repository/ChargeKindRepository.php + + - + message: "#^Method Chill\\\\BudgetBundle\\\\Repository\\\\ChargeKindRepository\\:\\:findBy\\(\\) has invalid return type Chill\\\\BudgetBundle\\\\Repository\\\\ChargeType\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/Repository/ChargeKindRepository.php + + - + message: "#^PHPDoc tag @param for parameter \\$limit with type mixed is not subtype of native type int\\|null\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/Repository/ChargeKindRepository.php + + - + message: "#^PHPDoc tag @param for parameter \\$offset with type mixed is not subtype of native type int\\|null\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/Repository/ChargeKindRepository.php + + - + message: "#^Method Chill\\\\BudgetBundle\\\\Repository\\\\ResourceKindRepository\\:\\:findAll\\(\\) has invalid return type Chill\\\\BudgetBundle\\\\Repository\\\\ResourceType\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/Repository/ResourceKindRepository.php + + - + message: "#^Method Chill\\\\BudgetBundle\\\\Repository\\\\ResourceKindRepository\\:\\:findAllActive\\(\\) has invalid return type Chill\\\\BudgetBundle\\\\Repository\\\\ResourceType\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/Repository/ResourceKindRepository.php + + - + message: "#^Method Chill\\\\BudgetBundle\\\\Repository\\\\ResourceKindRepository\\:\\:findAllByType\\(\\) has invalid return type Chill\\\\BudgetBundle\\\\Repository\\\\ResourceType\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/Repository/ResourceKindRepository.php + + - + message: "#^Method Chill\\\\BudgetBundle\\\\Repository\\\\ResourceKindRepository\\:\\:findBy\\(\\) has invalid return type Chill\\\\BudgetBundle\\\\Repository\\\\ResourceType\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/Repository/ResourceKindRepository.php + + - + message: "#^PHPDoc tag @param for parameter \\$limit with type mixed is not subtype of native type int\\|null\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/Repository/ResourceKindRepository.php + + - + message: "#^PHPDoc tag @param for parameter \\$offset with type mixed is not subtype of native type int\\|null\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/Repository/ResourceKindRepository.php + + - + message: "#^Property Chill\\\\BudgetBundle\\\\Service\\\\Summary\\\\SummaryBudget\\:\\:\\$chargeLabels is unused\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/Service/Summary/SummaryBudget.php + + - + message: "#^Property Chill\\\\BudgetBundle\\\\Service\\\\Summary\\\\SummaryBudget\\:\\:\\$resourcesLabels is unused\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/Service/Summary/SummaryBudget.php + + - + message: "#^Property Chill\\\\CalendarBundle\\\\Command\\\\AzureGrantAdminConsentAndAcquireToken\\:\\:\\$clientRegistry is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/Command/AzureGrantAdminConsentAndAcquireToken.php + + - + message: "#^Property Chill\\\\CalendarBundle\\\\Command\\\\SendTestShortMessageOnCalendarCommand\\:\\:\\$phoneNumberHelper is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/Command/SendTestShortMessageOnCalendarCommand.php + + - + message: "#^Strict comparison using \\=\\=\\= between false and DateInterval will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/Command/SendTestShortMessageOnCalendarCommand.php + + - + message: "#^Strict comparison using \\=\\=\\= between false and DateTimeImmutable will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/Command/SendTestShortMessageOnCalendarCommand.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Form\\\\FormInterface\\:\\:isClicked\\(\\)\\.$#" + count: 4 + path: src/Bundle/ChillCalendarBundle/Controller/CalendarController.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Serializer\\\\SerializerInterface\\:\\:normalize\\(\\)\\.$#" + count: 2 + path: src/Bundle/ChillCalendarBundle/Controller/CalendarController.php + + - + message: "#^Unreachable statement \\- code above always terminates\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/Controller/CalendarController.php + + - + message: "#^Property Chill\\\\CalendarBundle\\\\Controller\\\\CalendarDocController\\:\\:\\$docGeneratorTemplateRepository is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/Controller/CalendarDocController.php + + - + message: "#^Property Chill\\\\CalendarBundle\\\\Controller\\\\CalendarDocController\\:\\:\\$serializer is unused\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/Controller/CalendarDocController.php + + - + message: "#^Method Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\SessionInterface\\:\\:remove\\(\\) invoked with 2 parameters, 1 required\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/Controller/RemoteCalendarConnectAzureController.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\NodeDefinition\\:\\:children\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/DependencyInjection/Configuration.php + + - + message: "#^Method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\TreeBuilder\\:\\:getRootNode\\(\\) invoked with 1 parameter, 0 required\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/DependencyInjection/Configuration.php + + - + message: "#^Call to an undefined method Doctrine\\\\Common\\\\Collections\\\\Collection\\:\\:matching\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/Entity/Calendar.php + + - + message: "#^Property Chill\\\\CalendarBundle\\\\Entity\\\\CalendarRange\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/Entity/CalendarRange.php + + - + message: "#^Property Chill\\\\CalendarBundle\\\\Entity\\\\CancelReason\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/Entity/CancelReason.php + + - + message: "#^Property Chill\\\\CalendarBundle\\\\Messenger\\\\Message\\\\CalendarMessage\\:\\:\\$oldInvites \\(array\\\\) does not accept array\\\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/Messenger/Message/CalendarMessage.php + + - + message: "#^PHPDoc tag @return has invalid value \\(array\\\\)\\: Unexpected token \"\\:\", expected '\\>' at offset 408$#" + count: 2 + path: src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraph/EventsOnUserSubscriptionCreator.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and string will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraph/EventsOnUserSubscriptionCreator.php + + - + message: "#^Method Chill\\\\CalendarBundle\\\\RemoteCalendar\\\\Connector\\\\MSGraph\\\\OnBehalfOfUserTokenStorage\\:\\:getToken\\(\\) should return TheNetworg\\\\OAuth2\\\\Client\\\\Token\\\\AccessToken but returns League\\\\OAuth2\\\\Client\\\\Token\\\\AccessTokenInterface\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraph/OnBehalfOfUserTokenStorage.php + + - + message: "#^Call to method DateTimeImmutable\\:\\:setTimezone\\(\\) on a separate line has no effect\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraph/RemoteEventConverter.php + + - + message: "#^Unreachable statement \\- code above always terminates\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraph/RemoteToLocalSync/CalendarSyncer.php + + - + message: "#^Expression on left side of \\?\\? is not nullable\\.$#" + count: 2 + path: src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraphRemoteCalendarConnector.php + + - + message: "#^PHPDoc tag @return has invalid value \\(array\\{\\?id\\: string, \\?lastModifiedDateTime\\: int, \\?changeKey\\: string\\}\\)\\: Unexpected token \"\\:\", expected '\\}' at offset 129$#" + count: 2 + path: src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraphRemoteCalendarConnector.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and string will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraphRemoteCalendarConnector.php + + - + message: "#^Property Chill\\\\CalendarBundle\\\\Security\\\\Voter\\\\CalendarVoter\\:\\:\\$authorizationHelper is unused\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/Security/Voter/CalendarVoter.php + + - + message: "#^Property Chill\\\\CalendarBundle\\\\Security\\\\Voter\\\\CalendarVoter\\:\\:\\$centerResolverManager is unused\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/Security/Voter/CalendarVoter.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Console\\\\Helper\\\\HelperInterface\\:\\:ask\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Command/CreateFieldsOnGroupCommand.php + + - + message: "#^If condition is always true\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Command/CreateFieldsOnGroupCommand.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and Chill\\\\CustomFieldsBundle\\\\Service\\\\CustomFieldInterface will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Command/CreateFieldsOnGroupCommand.php + + - + message: "#^Method Chill\\\\CustomFieldsBundle\\\\Controller\\\\CustomFieldController\\:\\:createCreateForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Controller/CustomFieldController.php + + - + message: "#^Method Chill\\\\CustomFieldsBundle\\\\Controller\\\\CustomFieldController\\:\\:createEditForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Controller/CustomFieldController.php + + - + message: "#^PHPDoc tag @param has invalid value \\(string\\)\\: Unexpected token \"\\\\n \\* \", expected variable at offset 130$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Controller/CustomFieldController.php + + - + message: "#^Ternary operator condition is always true\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Controller/CustomFieldController.php + + - + message: "#^Call to an undefined method Doctrine\\\\Persistence\\\\ObjectManager\\:\\:createQuery\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Controller/CustomFieldsGroupController.php + + - + message: "#^Call to an undefined method Doctrine\\\\Persistence\\\\ObjectRepository\\\\:\\:findOneByEntity\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Controller/CustomFieldsGroupController.php + + - + message: "#^Call to an undefined method Doctrine\\\\Persistence\\\\ObjectRepository\\\\:\\:findOneById\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Controller/CustomFieldsGroupController.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Form\\\\FormInterface\\:\\:isClicked\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Controller/CustomFieldsGroupController.php + + - + message: "#^Method Chill\\\\CustomFieldsBundle\\\\Controller\\\\CustomFieldsGroupController\\:\\:createCreateForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Controller/CustomFieldsGroupController.php + + - + message: "#^Method Chill\\\\CustomFieldsBundle\\\\Controller\\\\CustomFieldsGroupController\\:\\:createEditForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Controller/CustomFieldsGroupController.php + + - + message: "#^Method Chill\\\\CustomFieldsBundle\\\\Controller\\\\CustomFieldsGroupController\\:\\:createMakeDefaultForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Controller/CustomFieldsGroupController.php + + - + message: "#^Call to an undefined method Symfony\\\\Contracts\\\\Translation\\\\TranslatorInterface\\:\\:getFallbackLocales\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldChoice.php + + - + message: "#^Method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldChoice\\:\\:buildOptionsForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\FormTypeInterface\\|null but returns Symfony\\\\Component\\\\Form\\\\FormBuilderInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldChoice.php + + - + message: "#^Method Symfony\\\\Component\\\\Form\\\\FormBuilderInterface\\:\\:create\\(\\) invoked with 4 parameters, 1\\-3 required\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldChoice.php + + - + message: "#^Parameter \\$builder of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldChoice\\:\\:buildForm\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\FormBuilderInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldChoice.php + + - + message: "#^Parameter \\$builder of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldChoice\\:\\:buildOptionsForm\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\FormBuilderInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldChoice.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldChoice\\:\\:buildForm\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldChoice.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldChoice\\:\\:deserialize\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldChoice.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldChoice\\:\\:render\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldChoice.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldChoice\\:\\:serialize\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldChoice.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and array\\|string will always evaluate to false\\.$#" + count: 2 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldChoice.php + + - + message: "#^Unreachable statement \\- code above always terminates\\.$#" + count: 3 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldChoice.php + + - + message: "#^Method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldDate\\:\\:buildOptionsForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\FormTypeInterface\\|null but returns Symfony\\\\Component\\\\Form\\\\FormBuilderInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldDate.php + + - + message: "#^Method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldDate\\:\\:render\\(\\) should return string but returns null\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldDate.php + + - + message: "#^Parameter \\$builder of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldDate\\:\\:buildForm\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\FormBuilderInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldDate.php + + - + message: "#^Parameter \\$builder of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldDate\\:\\:buildOptionsForm\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\FormBuilderInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldDate.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldDate\\:\\:buildForm\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldDate.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldDate\\:\\:deserialize\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldDate.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldDate\\:\\:render\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldDate.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldDate\\:\\:serialize\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldDate.php + + - + message: "#^PHPDoc tag @param for parameter \\$builder with type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\FormBuilderInterface is not subtype of native type Symfony\\\\Component\\\\Form\\\\FormBuilderInterface\\.$#" + count: 2 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldInterface.php + + - + message: "#^PHPDoc tag @param for parameter \\$customField with type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField is not subtype of native type Chill\\\\CustomFieldsBundle\\\\Entity\\\\CustomField\\.$#" + count: 4 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldInterface.php + + - + message: "#^Parameter \\$builder of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldInterface\\:\\:buildForm\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\FormBuilderInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldInterface.php + + - + message: "#^Parameter \\$builder of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldInterface\\:\\:buildOptionsForm\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\FormBuilderInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldInterface.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldInterface\\:\\:buildForm\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldInterface.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldInterface\\:\\:deserialize\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldInterface.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldInterface\\:\\:render\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldInterface.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldInterface\\:\\:serialize\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldInterface.php + + - + message: "#^Anonymous function never returns null so it can be removed from the return type\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldLongChoice.php + + - + message: "#^Method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldLongChoice\\:\\:buildOptionsForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\FormTypeInterface\\|null but returns Symfony\\\\Component\\\\Form\\\\FormBuilderInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldLongChoice.php + + - + message: "#^Parameter \\$builder of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldLongChoice\\:\\:buildForm\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\FormBuilderInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldLongChoice.php + + - + message: "#^Parameter \\$builder of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldLongChoice\\:\\:buildOptionsForm\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\FormBuilderInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldLongChoice.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldLongChoice\\:\\:buildForm\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldLongChoice.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldLongChoice\\:\\:deserialize\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldLongChoice.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldLongChoice\\:\\:render\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldLongChoice.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldLongChoice\\:\\:serialize\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldLongChoice.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and Chill\\\\CustomFieldsBundle\\\\Entity\\\\CustomFieldLongChoice\\\\Option will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldLongChoice.php + + - + message: "#^Ternary operator condition is always true\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldLongChoice.php + + - + message: "#^Method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldNumber\\:\\:buildOptionsForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\FormTypeInterface\\|null but returns Symfony\\\\Component\\\\Form\\\\FormBuilderInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldNumber.php + + - + message: "#^Parameter \\$builder of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldNumber\\:\\:buildForm\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\FormBuilderInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldNumber.php + + - + message: "#^Parameter \\$builder of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldNumber\\:\\:buildOptionsForm\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\FormBuilderInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldNumber.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldNumber\\:\\:buildForm\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldNumber.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldNumber\\:\\:deserialize\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldNumber.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldNumber\\:\\:render\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldNumber.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldNumber\\:\\:serialize\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldNumber.php + + - + message: "#^Method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldText\\:\\:buildOptionsForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\FormTypeInterface\\|null but returns Symfony\\\\Component\\\\Form\\\\FormBuilderInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldText.php + + - + message: "#^Parameter \\$builder of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldText\\:\\:buildForm\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\FormBuilderInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldText.php + + - + message: "#^Parameter \\$builder of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldText\\:\\:buildOptionsForm\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\FormBuilderInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldText.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldText\\:\\:buildForm\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldText.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldText\\:\\:deserialize\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldText.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldText\\:\\:render\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldText.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldText\\:\\:serialize\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldText.php + + - + message: "#^Property Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldText\\:\\:\\$requestStack is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldText.php + + - + message: "#^Method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldTitle\\:\\:buildOptionsForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\FormTypeInterface\\|null but returns Symfony\\\\Component\\\\Form\\\\FormBuilderInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldTitle.php + + - + message: "#^Parameter \\$builder of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldTitle\\:\\:buildForm\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\FormBuilderInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldTitle.php + + - + message: "#^Parameter \\$builder of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldTitle\\:\\:buildOptionsForm\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\FormBuilderInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldTitle.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldTitle\\:\\:buildForm\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldTitle.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldTitle\\:\\:deserialize\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldTitle.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldTitle\\:\\:render\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldTitle.php + + - + message: "#^Parameter \\$customField of method Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldTitle\\:\\:serialize\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\CustomField\\\\CustomField\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldTitle.php + + - + message: "#^Property Chill\\\\CustomFieldsBundle\\\\CustomFields\\\\CustomFieldTitle\\:\\:\\$requestStack is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/CustomFields/CustomFieldTitle.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\NodeDefinition\\:\\:children\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/DependencyInjection/Configuration.php + + - + message: "#^Method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\TreeBuilder\\:\\:getRootNode\\(\\) invoked with 1 parameter, 0 required\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/DependencyInjection/Configuration.php + + - + message: "#^Method Chill\\\\CustomFieldsBundle\\\\Entity\\\\CustomField\\:\\:getName\\(\\) should return array but returns string\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Entity/CustomField.php + + - + message: "#^Property Chill\\\\CustomFieldsBundle\\\\Entity\\\\CustomField\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Entity/CustomField.php + + - + message: "#^Property Chill\\\\CustomFieldsBundle\\\\Entity\\\\CustomFieldLongChoice\\\\Option\\:\\:\\$children is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Entity/CustomFieldLongChoice/Option.php + + - + message: "#^Property Chill\\\\CustomFieldsBundle\\\\Entity\\\\CustomFieldLongChoice\\\\Option\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Entity/CustomFieldLongChoice/Option.php + + - + message: "#^Property Chill\\\\CustomFieldsBundle\\\\Entity\\\\CustomFieldsDefaultGroup\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Entity/CustomFieldsDefaultGroup.php + + - + message: "#^Method Chill\\\\CustomFieldsBundle\\\\Entity\\\\CustomFieldsGroup\\:\\:getActiveCustomFields\\(\\) should return Doctrine\\\\Common\\\\Collections\\\\Collection but returns array\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Entity/CustomFieldsGroup.php + + - + message: "#^Method Chill\\\\CustomFieldsBundle\\\\Entity\\\\CustomFieldsGroup\\:\\:getName\\(\\) should return array but returns string\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Entity/CustomFieldsGroup.php + + - + message: "#^Property Chill\\\\CustomFieldsBundle\\\\Entity\\\\CustomFieldsGroup\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Entity/CustomFieldsGroup.php + + - + message: "#^Call to method buildOptionsForm\\(\\) on an unknown class Chill\\\\CustomFieldsBundle\\\\Service\\\\CustomFieldInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Form/CustomFieldType.php + + - + message: "#^PHPDoc tag @param for parameter \\$resolver with type Chill\\\\CustomFieldsBundle\\\\Form\\\\OptionsResolverInterface is not subtype of native type Symfony\\\\Component\\\\OptionsResolver\\\\OptionsResolver\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Form/CustomFieldType.php + + - + message: "#^Parameter \\$resolver of method Chill\\\\CustomFieldsBundle\\\\Form\\\\CustomFieldType\\:\\:configureOptions\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\Form\\\\OptionsResolverInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Form/CustomFieldType.php + + - + message: "#^Property Chill\\\\CustomFieldsBundle\\\\Form\\\\CustomFieldsGroupType\\:\\:\\$translator \\(Symfony\\\\Component\\\\Translation\\\\TranslatorInterface\\) does not accept Symfony\\\\Contracts\\\\Translation\\\\TranslatorInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Form/CustomFieldsGroupType.php + + - + message: "#^Instanceof between Chill\\\\CustomFieldsBundle\\\\Entity\\\\CustomFieldsGroup and Chill\\\\CustomFieldsBundle\\\\Entity\\\\CustomFieldsGroup will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Form/DataTransformer/CustomFieldsGroupToIdTransformer.php + + - + message: "#^Instanceof between string and Chill\\\\CustomFieldsBundle\\\\Entity\\\\CustomFieldsGroup will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Form/DataTransformer/CustomFieldsGroupToIdTransformer.php + + - + message: "#^Method Chill\\\\CustomFieldsBundle\\\\Form\\\\DataTransformer\\\\CustomFieldsGroupToIdTransformer\\:\\:transform\\(\\) should return string but returns int\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Form/DataTransformer/CustomFieldsGroupToIdTransformer.php + + - + message: "#^Call to an undefined method Chill\\\\CustomFieldsBundle\\\\Entity\\\\CustomField\\:\\:getLabel\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Form/DataTransformer/JsonCustomFieldToArrayTransformer.php + + - + message: "#^Call to an undefined method Doctrine\\\\Persistence\\\\ObjectRepository\\\\:\\:findOneById\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Form/DataTransformer/JsonCustomFieldToArrayTransformer.php + + - + message: "#^Call to method getCustomFieldByType\\(\\) on an unknown class Chill\\\\CustomFieldsBundle\\\\Form\\\\Type\\\\CustomFieldCompiler\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Form/Type/CustomFieldType.php + + - + message: "#^Property Chill\\\\CustomFieldsBundle\\\\Form\\\\Type\\\\CustomFieldType\\:\\:\\$customFieldCompiler \\(Chill\\\\CustomFieldsBundle\\\\Form\\\\Type\\\\CustomFieldCompiler\\) does not accept Chill\\\\CustomFieldsBundle\\\\Service\\\\CustomFieldProvider\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Form/Type/CustomFieldType.php + + - + message: "#^Property Chill\\\\CustomFieldsBundle\\\\Form\\\\Type\\\\CustomFieldType\\:\\:\\$customFieldCompiler has unknown class Chill\\\\CustomFieldsBundle\\\\Form\\\\Type\\\\CustomFieldCompiler as its type\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Form/Type/CustomFieldType.php + + - + message: "#^Property Chill\\\\CustomFieldsBundle\\\\Form\\\\Type\\\\CustomFieldType\\:\\:\\$om is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Form/Type/CustomFieldType.php + + - + message: "#^Invalid array key type Chill\\\\CustomFieldsBundle\\\\Service\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Service/CustomFieldProvider.php + + - + message: "#^Method Chill\\\\CustomFieldsBundle\\\\Service\\\\CustomFieldProvider\\:\\:getCustomFieldByType\\(\\) has invalid return type Chill\\\\CustomFieldsBundle\\\\Service\\\\CustomFieldInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Service/CustomFieldProvider.php + + - + message: "#^Parameter \\$serviceName of method Chill\\\\CustomFieldsBundle\\\\Service\\\\CustomFieldProvider\\:\\:addCustomField\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\Service\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Service/CustomFieldProvider.php + + - + message: "#^Parameter \\$type of method Chill\\\\CustomFieldsBundle\\\\Service\\\\CustomFieldProvider\\:\\:addCustomField\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\Service\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Service/CustomFieldProvider.php + + - + message: "#^Property Chill\\\\CustomFieldsBundle\\\\Service\\\\CustomFieldProvider\\:\\:\\$container \\(Chill\\\\CustomFieldsBundle\\\\Service\\\\Container\\) does not accept Symfony\\\\Component\\\\DependencyInjection\\\\ContainerInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Service/CustomFieldProvider.php + + - + message: "#^Property Chill\\\\CustomFieldsBundle\\\\Service\\\\CustomFieldProvider\\:\\:\\$container has unknown class Chill\\\\CustomFieldsBundle\\\\Service\\\\Container as its type\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Service/CustomFieldProvider.php + + - + message: "#^Property Chill\\\\CustomFieldsBundle\\\\Service\\\\CustomFieldProvider\\:\\:\\$container is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Service/CustomFieldProvider.php + + - + message: "#^Call to method deserialize\\(\\) on an unknown class Chill\\\\CustomFieldsBundle\\\\Service\\\\CustomFieldInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Service/CustomFieldsHelper.php + + - + message: "#^Call to method isEmptyValue\\(\\) on an unknown class Chill\\\\CustomFieldsBundle\\\\Service\\\\CustomFieldInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Service/CustomFieldsHelper.php + + - + message: "#^Call to method render\\(\\) on an unknown class Chill\\\\CustomFieldsBundle\\\\Service\\\\CustomFieldInterface\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Service/CustomFieldsHelper.php + + - + message: "#^Method Chill\\\\CustomFieldsBundle\\\\Service\\\\CustomFieldsHelper\\:\\:renderCustomField\\(\\) has invalid return type Chill\\\\CustomFieldsBundle\\\\Service\\\\The\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Service/CustomFieldsHelper.php + + - + message: "#^Property Chill\\\\CustomFieldsBundle\\\\Service\\\\CustomFieldsHelper\\:\\:\\$em is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Service/CustomFieldsHelper.php + + - + message: "#^Method Chill\\\\CustomFieldsBundle\\\\Templating\\\\Twig\\\\CustomFieldRenderingTwig\\:\\:renderWidget\\(\\) should return string but returns Chill\\\\CustomFieldsBundle\\\\Service\\\\The\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Templating/Twig/CustomFieldRenderingTwig.php + + - + message: "#^Property Chill\\\\CustomFieldsBundle\\\\Templating\\\\Twig\\\\CustomFieldRenderingTwig\\:\\:\\$container \\(Symfony\\\\Component\\\\DependencyInjection\\\\Container\\) does not accept Symfony\\\\Component\\\\DependencyInjection\\\\ContainerInterface\\|null\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Templating/Twig/CustomFieldRenderingTwig.php + + - + message: "#^Parameter \\$customFielsGroup of method Chill\\\\CustomFieldsBundle\\\\Templating\\\\Twig\\\\CustomFieldsGroupRenderingTwig\\:\\:renderWidget\\(\\) has invalid type Chill\\\\CustomFieldsBundle\\\\Templating\\\\Twig\\\\CustomFieldsGroud\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Templating/Twig/CustomFieldsGroupRenderingTwig.php + + - + message: "#^Property Chill\\\\CustomFieldsBundle\\\\Templating\\\\Twig\\\\CustomFieldsGroupRenderingTwig\\:\\:\\$container \\(Symfony\\\\Component\\\\DependencyInjection\\\\Container\\) does not accept Symfony\\\\Component\\\\DependencyInjection\\\\ContainerInterface\\|null\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Templating/Twig/CustomFieldsGroupRenderingTwig.php + + - + message: "#^Left side of && is always true\\.$#" + count: 1 + path: src/Bundle/ChillDocGeneratorBundle/Controller/DocGeneratorTemplateController.php + + - + message: "#^PHPDoc tag @return with type void is incompatible with native type Symfony\\\\Component\\\\HttpFoundation\\\\RedirectResponse\\.$#" + count: 1 + path: src/Bundle/ChillDocGeneratorBundle/Controller/DocGeneratorTemplateController.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and int will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillDocGeneratorBundle/Controller/DocGeneratorTemplateController.php + + - + message: "#^Binary operation \"\\.\" between 'Adding doc…' and array\\{filename\\: 'pKNlhCrQDCRsAuC8vYH…', key\\: '\\{\"alg\"\\:\"A256CBC\",…', iv\\: '\\[86,231,83,148,117…', type\\: 'application/vnd…'\\} results in an error\\.$#" + count: 1 + path: src/Bundle/ChillDocGeneratorBundle/DataFixtures/ORM/LoadDocGeneratorTemplate.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\NodeDefinition\\:\\:children\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillDocGeneratorBundle/DependencyInjection/Configuration.php + + - + message: "#^Property Chill\\\\DocGeneratorBundle\\\\Entity\\\\DocGeneratorTemplate\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillDocGeneratorBundle/Entity/DocGeneratorTemplate.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and Doctrine\\\\Common\\\\Collections\\\\Collection will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillDocGeneratorBundle/Serializer/Normalizer/CollectionDocGenNormalizer.php + + - + message: "#^Call to an undefined method ReflectionType\\:\\:getName\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillDocGeneratorBundle/Serializer/Normalizer/DocGenObjectNormalizer.php + + - + message: "#^Expression on left side of \\?\\? is not nullable\\.$#" + count: 1 + path: src/Bundle/ChillDocGeneratorBundle/Serializer/Normalizer/DocGenObjectNormalizer.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod will always evaluate to false\\.$#" + count: 2 + path: src/Bundle/ChillDocStoreBundle/Controller/DocumentAccompanyingCourseController.php + + - + message: "#^Call to an undefined method Doctrine\\\\Persistence\\\\ObjectManager\\:\\:createQuery\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillDocStoreBundle/Controller/DocumentCategoryController.php + + - + message: "#^Method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) invoked with 2 parameters, 1 required\\.$#" + count: 4 + path: src/Bundle/ChillDocStoreBundle/Controller/DocumentPersonController.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and Chill\\\\PersonBundle\\\\Entity\\\\Person will always evaluate to false\\.$#" + count: 2 + path: src/Bundle/ChillDocStoreBundle/Controller/DocumentPersonController.php + + - + message: "#^Method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\TreeBuilder\\:\\:getRootNode\\(\\) invoked with 1 parameter, 0 required\\.$#" + count: 1 + path: src/Bundle/ChillDocStoreBundle/DependencyInjection/Configuration.php + + - + message: "#^Property Chill\\\\DocStoreBundle\\\\Entity\\\\Document\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillDocStoreBundle/Entity/Document.php + + - + message: "#^Property Chill\\\\DocStoreBundle\\\\Entity\\\\Document\\:\\:\\$user has unknown class Chill\\\\PersonBundle\\\\Entity\\\\user as its type\\.$#" + count: 1 + path: src/Bundle/ChillDocStoreBundle/Entity/Document.php + + - + message: "#^Property Chill\\\\DocStoreBundle\\\\Entity\\\\StoredObject\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillDocStoreBundle/Entity/StoredObject.php + + - + message: "#^Call to an undefined method Doctrine\\\\ORM\\\\EntityRepository\\\\:\\:findByFilename\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillDocStoreBundle/Object/ObjectToAsyncFileTransformer.php + + - + message: "#^Property Chill\\\\DocStoreBundle\\\\Repository\\\\AccompanyingCourseDocumentRepository\\:\\:\\$em is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillDocStoreBundle/Repository/AccompanyingCourseDocumentRepository.php + + - + message: "#^Property Chill\\\\DocStoreBundle\\\\Repository\\\\DocumentCategoryRepository\\:\\:\\$em is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillDocStoreBundle/Repository/DocumentCategoryRepository.php + + - + message: "#^Instanceof between Chill\\\\DocStoreBundle\\\\Entity\\\\PersonDocument and Chill\\\\DocStoreBundle\\\\Entity\\\\PersonDocument will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillDocStoreBundle/Security/Authorization/PersonDocumentVoter.php + + - + message: "#^Default value of the parameter \\#5 \\$options \\(array\\{\\}\\) of method Chill\\\\DocStoreBundle\\\\Templating\\\\WopiEditTwigExtensionRuntime\\:\\:renderButtonGroup\\(\\) is incompatible with type array\\{small\\: bool\\}\\.$#" + count: 1 + path: src/Bundle/ChillDocStoreBundle/Templating/WopiEditTwigExtensionRuntime.php + + - + message: "#^Property Chill\\\\DocStoreBundle\\\\Templating\\\\WopiEditTwigExtensionRuntime\\:\\:\\$discovery is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillDocStoreBundle/Templating/WopiEditTwigExtensionRuntime.php + + - + message: "#^Call to an undefined method Doctrine\\\\Persistence\\\\ObjectRepository\\\\:\\:countByPerson\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/EventController.php + + - + message: "#^Call to an undefined method Doctrine\\\\Persistence\\\\ObjectRepository\\\\:\\:findByPersonInCircle\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/EventController.php + + - + message: "#^Cannot call method getUsernameCanonical\\(\\) on int\\\\|int\\<1, max\\>\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/EventController.php + + - + message: "#^Method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) invoked with 2 parameters, 1 required\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/EventController.php + + - + message: "#^Negated boolean expression is always false\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/EventController.php + + - + message: "#^Method Chill\\\\EventBundle\\\\Controller\\\\EventTypeController\\:\\:createCreateForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/EventTypeController.php + + - + message: "#^Method Chill\\\\EventBundle\\\\Controller\\\\EventTypeController\\:\\:createDeleteForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/EventTypeController.php + + - + message: "#^Method Chill\\\\EventBundle\\\\Controller\\\\EventTypeController\\:\\:createEditForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/EventTypeController.php + + - + message: "#^Call to an undefined method Traversable\\:\\:count\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/ParticipationController.php + + - + message: "#^Call to an undefined method Traversable\\:\\:current\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/ParticipationController.php + + - + message: "#^Method Chill\\\\EventBundle\\\\Controller\\\\ParticipationController\\:\\:handleRequest\\(\\) has invalid return type Chill\\\\EventBundle\\\\Controller\\\\Participations\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/ParticipationController.php + + - + message: "#^Strict comparison using \\!\\=\\= between null and int will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/ParticipationController.php + + - + message: "#^Strict comparison using \\!\\=\\= between null and int\\|string will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/ParticipationController.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and Chill\\\\EventBundle\\\\Entity\\\\Event will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/ParticipationController.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and Chill\\\\EventBundle\\\\Entity\\\\Participation will always evaluate to false\\.$#" + count: 2 + path: src/Bundle/ChillEventBundle/Controller/ParticipationController.php + + - + message: "#^Method Chill\\\\EventBundle\\\\Controller\\\\RoleController\\:\\:createCreateForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/RoleController.php + + - + message: "#^Method Chill\\\\EventBundle\\\\Controller\\\\RoleController\\:\\:createDeleteForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/RoleController.php + + - + message: "#^Method Chill\\\\EventBundle\\\\Controller\\\\RoleController\\:\\:createEditForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/RoleController.php + + - + message: "#^Method Chill\\\\EventBundle\\\\Controller\\\\StatusController\\:\\:createCreateForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/StatusController.php + + - + message: "#^Method Chill\\\\EventBundle\\\\Controller\\\\StatusController\\:\\:createDeleteForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/StatusController.php + + - + message: "#^Method Chill\\\\EventBundle\\\\Controller\\\\StatusController\\:\\:createEditForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/StatusController.php + + - + message: "#^Method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\TreeBuilder\\:\\:getRootNode\\(\\) invoked with 1 parameter, 0 required\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/DependencyInjection/Configuration.php + + - + message: "#^Call to an undefined method Chill\\\\EventBundle\\\\Entity\\\\Participation\\:\\:getIterator\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Entity/Event.php + + - + message: "#^Call to an undefined method Chill\\\\EventBundle\\\\Entity\\\\Participation\\:\\:removeElement\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Entity/Event.php + + - + message: "#^Method Chill\\\\EventBundle\\\\Entity\\\\Event\\:\\:getModerator\\(\\) should return int but returns Chill\\\\MainBundle\\\\Entity\\\\User\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Entity/Event.php + + - + message: "#^Property Chill\\\\EventBundle\\\\Entity\\\\Event\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Entity/Event.php + + - + message: "#^Property Chill\\\\EventBundle\\\\Entity\\\\Event\\:\\:\\$moderator \\(Chill\\\\MainBundle\\\\Entity\\\\User\\) does not accept int\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Entity/Event.php + + - + message: "#^Property Chill\\\\EventBundle\\\\Entity\\\\Event\\:\\:\\$participations \\(Chill\\\\EventBundle\\\\Entity\\\\Participation\\) does not accept Doctrine\\\\Common\\\\Collections\\\\ArrayCollection\\<\\*NEVER\\*, \\*NEVER\\*\\>\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Entity/Event.php + + - + message: "#^Property Chill\\\\EventBundle\\\\Entity\\\\EventType\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Entity/EventType.php + + - + message: "#^Property Chill\\\\EventBundle\\\\Entity\\\\Participation\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Entity/Participation.php + + - + message: "#^Result of \\|\\| is always false\\.$#" + count: 2 + path: src/Bundle/ChillEventBundle/Entity/Participation.php + + - + message: "#^Strict comparison using \\=\\=\\= between Chill\\\\EventBundle\\\\Entity\\\\Event and null will always evaluate to false\\.$#" + count: 3 + path: src/Bundle/ChillEventBundle/Entity/Participation.php + + - + message: "#^Strict comparison using \\=\\=\\= between Chill\\\\EventBundle\\\\Entity\\\\Role and null will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Entity/Participation.php + + - + message: "#^Strict comparison using \\=\\=\\= between Chill\\\\EventBundle\\\\Entity\\\\Status and null will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Entity/Participation.php + + - + message: "#^Property Chill\\\\EventBundle\\\\Entity\\\\Role\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Entity/Role.php + + - + message: "#^Property Chill\\\\EventBundle\\\\Entity\\\\Status\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Entity/Status.php + + - + message: "#^Call to method setDefaults\\(\\) on an unknown class Symfony\\\\Component\\\\OptionsResolver\\\\OptionsResolverInterface\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Form/EventTypeType.php + + - + message: "#^Call to method setDefaults\\(\\) on an unknown class Symfony\\\\Component\\\\OptionsResolver\\\\OptionsResolverInterface\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Form/RoleType.php + + - + message: "#^Call to method setDefaults\\(\\) on an unknown class Symfony\\\\Component\\\\OptionsResolver\\\\OptionsResolverInterface\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Form/StatusType.php + + - + message: "#^Property Chill\\\\EventBundle\\\\Form\\\\Type\\\\PickEventType\\:\\:\\$user \\(Chill\\\\MainBundle\\\\Entity\\\\User\\) does not accept string\\|Stringable\\|Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Form/Type/PickEventType.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Form\\\\ResolvedFormTypeInterface\\:\\:getName\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Form/Type/PickRoleType.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Form\\\\ResolvedFormTypeInterface\\:\\:getName\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Form/Type/PickStatusType.php + + - + message: "#^Method Chill\\\\EventBundle\\\\Search\\\\EventSearch\\:\\:renderResult\\(\\) should return string but returns array\\\\|bool\\>\\>\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Search/EventSearch.php + + - + message: "#^Property Chill\\\\EventBundle\\\\Search\\\\EventSearch\\:\\:\\$user \\(Chill\\\\MainBundle\\\\Entity\\\\User\\) does not accept string\\|Stringable\\|Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Search/EventSearch.php + + - + message: "#^Instanceof between Chill\\\\EventBundle\\\\Entity\\\\Event and Chill\\\\EventBundle\\\\Entity\\\\Event will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Security/Authorization/EventVoter.php + + - + message: "#^Unreachable statement \\- code above always terminates\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Security/Authorization/EventVoter.php + + - + message: "#^Instanceof between Chill\\\\EventBundle\\\\Entity\\\\Participation and Chill\\\\EventBundle\\\\Entity\\\\Participation will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Security/Authorization/ParticipationVoter.php + + - + message: "#^Unreachable statement \\- code above always terminates\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Security/Authorization/ParticipationVoter.php + + - + message: "#^Parameter \\#2 \\$context \\(string\\) of method Chill\\\\EventBundle\\\\Timeline\\\\TimelineEventProvider\\:\\:getEntityTemplate\\(\\) should be compatible with parameter \\$context \\(Chill\\\\MainBundle\\\\Timeline\\\\type\\) of method Chill\\\\MainBundle\\\\Timeline\\\\TimelineProviderInterface\\:\\:getEntityTemplate\\(\\)$#" + count: 1 + path: src/Bundle/ChillEventBundle/Timeline/TimelineEventProvider.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\NodeDefinition\\:\\:children\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillFamilyMembersBundle/DependencyInjection/Configuration.php + + - + message: "#^Method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\TreeBuilder\\:\\:getRootNode\\(\\) invoked with 1 parameter, 0 required\\.$#" + count: 1 + path: src/Bundle/ChillFamilyMembersBundle/DependencyInjection/Configuration.php + + - + message: "#^Instanceof between DateTimeImmutable and DateTime will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillFamilyMembersBundle/Entity/AbstractFamilyMember.php + + - + message: "#^Instanceof between DateTimeImmutable and DateTimeImmutable will always evaluate to true\\.$#" + count: 2 + path: src/Bundle/ChillFamilyMembersBundle/Entity/AbstractFamilyMember.php + + - + message: "#^Method Chill\\\\FamilyMembersBundle\\\\Entity\\\\AbstractFamilyMember\\:\\:getBirthdate\\(\\) has invalid return type Chill\\\\FamilyMembersBundle\\\\Entity\\\\date_immutable\\.$#" + count: 1 + path: src/Bundle/ChillFamilyMembersBundle/Entity/AbstractFamilyMember.php + + - + message: "#^Method Chill\\\\FamilyMembersBundle\\\\Entity\\\\AbstractFamilyMember\\:\\:setBirthdate\\(\\) should return Chill\\\\FamilyMembersBundle\\\\Entity\\\\FamilyMember but returns \\$this\\(Chill\\\\FamilyMembersBundle\\\\Entity\\\\AbstractFamilyMember\\)\\.$#" + count: 1 + path: src/Bundle/ChillFamilyMembersBundle/Entity/AbstractFamilyMember.php + + - + message: "#^Method Chill\\\\FamilyMembersBundle\\\\Entity\\\\AbstractFamilyMember\\:\\:setEndDate\\(\\) should return Chill\\\\FamilyMembersBundle\\\\Entity\\\\FamilyMember but returns \\$this\\(Chill\\\\FamilyMembersBundle\\\\Entity\\\\AbstractFamilyMember\\)\\.$#" + count: 1 + path: src/Bundle/ChillFamilyMembersBundle/Entity/AbstractFamilyMember.php + + - + message: "#^Method Chill\\\\FamilyMembersBundle\\\\Entity\\\\AbstractFamilyMember\\:\\:setFirstname\\(\\) should return Chill\\\\FamilyMembersBundle\\\\Entity\\\\FamilyMember but returns \\$this\\(Chill\\\\FamilyMembersBundle\\\\Entity\\\\AbstractFamilyMember\\)\\.$#" + count: 1 + path: src/Bundle/ChillFamilyMembersBundle/Entity/AbstractFamilyMember.php + + - + message: "#^Method Chill\\\\FamilyMembersBundle\\\\Entity\\\\AbstractFamilyMember\\:\\:setGender\\(\\) should return Chill\\\\FamilyMembersBundle\\\\Entity\\\\FamilyMember but returns \\$this\\(Chill\\\\FamilyMembersBundle\\\\Entity\\\\AbstractFamilyMember\\)\\.$#" + count: 1 + path: src/Bundle/ChillFamilyMembersBundle/Entity/AbstractFamilyMember.php + + - + message: "#^Method Chill\\\\FamilyMembersBundle\\\\Entity\\\\AbstractFamilyMember\\:\\:setLastname\\(\\) should return Chill\\\\FamilyMembersBundle\\\\Entity\\\\FamilyMember but returns \\$this\\(Chill\\\\FamilyMembersBundle\\\\Entity\\\\AbstractFamilyMember\\)\\.$#" + count: 1 + path: src/Bundle/ChillFamilyMembersBundle/Entity/AbstractFamilyMember.php + + - + message: "#^Method Chill\\\\FamilyMembersBundle\\\\Entity\\\\AbstractFamilyMember\\:\\:setLink\\(\\) should return Chill\\\\FamilyMembersBundle\\\\Entity\\\\FamilyMember but returns \\$this\\(Chill\\\\FamilyMembersBundle\\\\Entity\\\\AbstractFamilyMember\\)\\.$#" + count: 1 + path: src/Bundle/ChillFamilyMembersBundle/Entity/AbstractFamilyMember.php + + - + message: "#^Method Chill\\\\FamilyMembersBundle\\\\Entity\\\\AbstractFamilyMember\\:\\:setProfessionnalSituation\\(\\) should return Chill\\\\FamilyMembersBundle\\\\Entity\\\\FamilyMember but returns \\$this\\(Chill\\\\FamilyMembersBundle\\\\Entity\\\\AbstractFamilyMember\\)\\.$#" + count: 1 + path: src/Bundle/ChillFamilyMembersBundle/Entity/AbstractFamilyMember.php + + - + message: "#^Method Chill\\\\FamilyMembersBundle\\\\Entity\\\\AbstractFamilyMember\\:\\:setStartDate\\(\\) should return Chill\\\\FamilyMembersBundle\\\\Entity\\\\FamilyMember but returns \\$this\\(Chill\\\\FamilyMembersBundle\\\\Entity\\\\AbstractFamilyMember\\)\\.$#" + count: 1 + path: src/Bundle/ChillFamilyMembersBundle/Entity/AbstractFamilyMember.php + + - + message: "#^Property Chill\\\\FamilyMembersBundle\\\\Entity\\\\AbstractFamilyMember\\:\\:\\$birthdate \\(Chill\\\\FamilyMembersBundle\\\\Entity\\\\date_immutable\\|null\\) does not accept DateTimeImmutable\\.$#" + count: 1 + path: src/Bundle/ChillFamilyMembersBundle/Entity/AbstractFamilyMember.php + + - + message: "#^Property Chill\\\\FamilyMembersBundle\\\\Entity\\\\AbstractFamilyMember\\:\\:\\$birthdate \\(Chill\\\\FamilyMembersBundle\\\\Entity\\\\date_immutable\\|null\\) does not accept DateTimeImmutable\\|null\\.$#" + count: 1 + path: src/Bundle/ChillFamilyMembersBundle/Entity/AbstractFamilyMember.php + + - + message: "#^Property Chill\\\\FamilyMembersBundle\\\\Entity\\\\AbstractFamilyMember\\:\\:\\$birthdate has unknown class Chill\\\\FamilyMembersBundle\\\\Entity\\\\date_immutable as its type\\.$#" + count: 1 + path: src/Bundle/ChillFamilyMembersBundle/Entity/AbstractFamilyMember.php + + - + message: "#^Result of \\|\\| is always true\\.$#" + count: 3 + path: src/Bundle/ChillFamilyMembersBundle/Entity/AbstractFamilyMember.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and DateTimeImmutable will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillFamilyMembersBundle/Entity/AbstractFamilyMember.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and null will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillFamilyMembersBundle/Entity/AbstractFamilyMember.php + + - + message: "#^Property Chill\\\\FamilyMembersBundle\\\\Entity\\\\FamilyMember\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillFamilyMembersBundle/Entity/FamilyMember.php + + - + message: "#^Call to an undefined method Doctrine\\\\Persistence\\\\ObjectManager\\:\\:createQueryBuilder\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/CRUD/Controller/AbstractCRUDController.php + + - + message: "#^Call to method select\\(\\) on an unknown class Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\QueryBuilder\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/CRUD/Controller/AbstractCRUDController.php + + - + message: "#^Call to method setFirstResult\\(\\) on an unknown class Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\QueryBuilder\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/CRUD/Controller/AbstractCRUDController.php + + - + message: "#^Method Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\AbstractCRUDController\\:\\:buildQueryEntities\\(\\) has invalid return type Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\QueryBuilder\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/CRUD/Controller/AbstractCRUDController.php + + - + message: "#^PHPDoc tag @throws with type Symfony\\\\Component\\\\Security\\\\Core\\\\Exception\\\\AccessDeniedHttpException is not subtype of Throwable$#" + count: 1 + path: src/Bundle/ChillMainBundle/CRUD/Controller/AbstractCRUDController.php + + - + message: "#^PHPDoc tag @param for parameter \\$postedDataContext with type string is incompatible with native type array\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/CRUD/Controller/ApiController.php + + - + message: "#^PHPDoc tag @param has invalid value \\(mixed id\\)\\: Unexpected token \"id\", expected variable at offset 956$#" + count: 1 + path: src/Bundle/ChillMainBundle/CRUD/Controller/ApiController.php + + - + message: "#^PHPDoc tag @param has invalid value \\(string action\\)\\: Unexpected token \"action\", expected variable at offset 929$#" + count: 1 + path: src/Bundle/ChillMainBundle/CRUD/Controller/ApiController.php + + - + message: "#^PHPDoc tag @return with type void is incompatible with native type Symfony\\\\Component\\\\HttpFoundation\\\\Response\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/CRUD/Controller/ApiController.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and object will always evaluate to false\\.$#" + count: 2 + path: src/Bundle/ChillMainBundle/CRUD/Controller/ApiController.php + + - + message: "#^Unreachable statement \\- code above always terminates\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/CRUD/Controller/ApiController.php + + - + message: "#^Call to an undefined method Doctrine\\\\Persistence\\\\ObjectManager\\:\\:createQueryBuilder\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php + + - + message: "#^Call to method getQuery\\(\\) on an unknown class Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php + + - + message: "#^Instanceof between Symfony\\\\Component\\\\HttpFoundation\\\\RedirectResponse and Symfony\\\\Component\\\\HttpFoundation\\\\Response will always evaluate to true\\.$#" + count: 3 + path: src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php + + - + message: "#^Method Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\CRUDController\\:\\:index\\(\\) has invalid return type Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php + + - + message: "#^Method Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\CRUDController\\:\\:queryEntities\\(\\) has invalid return type Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php + + - + message: "#^PHPDoc tag @throws with type Symfony\\\\Component\\\\Security\\\\Core\\\\Exception\\\\AccessDeniedHttpException is not subtype of Throwable$#" + count: 1 + path: src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php + + - + message: "#^Parameter \\$formClass of method Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\CRUDController\\:\\:formCreateAction\\(\\) has invalid type Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php + + - + message: "#^Unreachable statement \\- code above always terminates\\.$#" + count: 3 + path: src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php + + - + message: "#^Constant Chill\\\\MainBundle\\\\CRUD\\\\Routing\\\\CRUDRoutesLoader\\:\\:ALL_INDEX_METHODS is unused\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/CRUD/Routing/CRUDRoutesLoader.php + + - + message: "#^Constant Chill\\\\MainBundle\\\\CRUD\\\\Routing\\\\CRUDRoutesLoader\\:\\:ALL_SINGLE_METHODS is unused\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/CRUD/Routing/CRUDRoutesLoader.php + + - + message: "#^Strict comparison using \\=\\=\\= between 'CRUD' and null will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/CRUD/Routing/CRUDRoutesLoader.php + + - + message: "#^Strict comparison using \\=\\=\\= between 'collection' and 'single'\\|null will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/CRUD/Routing/CRUDRoutesLoader.php + + - + message: "#^Call to an undefined method Doctrine\\\\ORM\\\\EntityRepository\\\\:\\:findOneByName\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Command/ChillImportUsersCommand.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Command\\\\ChillImportUsersCommand\\:\\:getCenters\\(\\) should return array\\ but returns null\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Command/ChillImportUsersCommand.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Command\\\\ChillUserSendRenewPasswordCodeCommand\\:\\:\\$output is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Command/ChillUserSendRenewPasswordCodeCommand.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Console\\\\Helper\\\\HelperInterface\\:\\:askHiddenResponse\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Command/SetPasswordCommand.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Controller\\\\CenterController\\:\\:createCreateForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/CenterController.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Controller\\\\CenterController\\:\\:createEditForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/CenterController.php + + - + message: "#^Instanceof between Chill\\\\MainBundle\\\\Export\\\\DirectExportInterface and Chill\\\\MainBundle\\\\Export\\\\DirectExportInterface will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/ExportController.php + + - + message: "#^PHPDoc tag @param for parameter \\$request with type string is incompatible with native type Symfony\\\\Component\\\\HttpFoundation\\\\Request\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/ExportController.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and string will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/ExportController.php + + - + message: "#^Call to an undefined method Doctrine\\\\Persistence\\\\ObjectManager\\:\\:createQueryBuilder\\(\\)\\.$#" + count: 2 + path: src/Bundle/ChillMainBundle/Controller/PasswordController.php + + - + message: "#^Call to an undefined method Doctrine\\\\Persistence\\\\ObjectRepository\\\\:\\:findOneByUsernameCanonical\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/PasswordController.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Controller\\\\PasswordController\\:\\:passwordForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/PasswordController.php + + - + message: "#^Method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) invoked with 2 parameters, 1 required\\.$#" + count: 4 + path: src/Bundle/ChillMainBundle/Controller/PasswordController.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Controller\\\\PermissionsGroupController\\:\\:addLinkRoleScopeAction\\(\\) has invalid return type Chill\\\\MainBundle\\\\Controller\\\\Respon\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/PermissionsGroupController.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Controller\\\\PermissionsGroupController\\:\\:addLinkRoleScopeAction\\(\\) should return Chill\\\\MainBundle\\\\Controller\\\\Respon but returns Symfony\\\\Component\\\\HttpFoundation\\\\RedirectResponse\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/PermissionsGroupController.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Controller\\\\PermissionsGroupController\\:\\:addLinkRoleScopeAction\\(\\) should return Chill\\\\MainBundle\\\\Controller\\\\Respon but returns Symfony\\\\Component\\\\HttpFoundation\\\\Response\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/PermissionsGroupController.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Controller\\\\PermissionsGroupController\\:\\:createAddRoleScopeForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/PermissionsGroupController.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Controller\\\\PermissionsGroupController\\:\\:createCreateForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/PermissionsGroupController.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Controller\\\\PermissionsGroupController\\:\\:createDeleteRoleScopeForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/PermissionsGroupController.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Controller\\\\PermissionsGroupController\\:\\:createEditForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/PermissionsGroupController.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Controller\\\\PermissionsGroupController\\:\\:deleteLinkRoleScopeAction\\(\\) has invalid return type Chill\\\\MainBundle\\\\Controller\\\\redirection\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/PermissionsGroupController.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Controller\\\\PermissionsGroupController\\:\\:deleteLinkRoleScopeAction\\(\\) should return Chill\\\\MainBundle\\\\Controller\\\\redirection but returns Symfony\\\\Component\\\\HttpFoundation\\\\RedirectResponse\\.$#" + count: 2 + path: src/Bundle/ChillMainBundle/Controller/PermissionsGroupController.php + + - + message: "#^PHPDoc tag @param for parameter \\$permissionsGroup with type mixed is not subtype of native type Chill\\\\MainBundle\\\\Entity\\\\PermissionsGroup\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/PermissionsGroupController.php + + - + message: "#^PHPDoc tag @throws with type Chill\\\\MainBundle\\\\Controller\\\\type is not subtype of Throwable$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/PermissionsGroupController.php + + - + message: "#^Call to an undefined method Doctrine\\\\Persistence\\\\ObjectManager\\:\\:createQuery\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/PostalCodeController.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\SessionInterface\\:\\:getFlashBag\\(\\)\\.$#" + count: 2 + path: src/Bundle/ChillMainBundle/Controller/SavedExportController.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Controller\\\\ScopeController\\:\\:createCreateForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/ScopeController.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Controller\\\\ScopeController\\:\\:createEditForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/ScopeController.php + + - + message: "#^Call to method buildForm\\(\\) on an unknown class Chill\\\\MainBundle\\\\Search\\\\HasAdvancedSearchForm\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/SearchController.php + + - + message: "#^Call to method convertFormDataToQuery\\(\\) on an unknown class Chill\\\\MainBundle\\\\Search\\\\HasAdvancedSearchForm\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/SearchController.php + + - + message: "#^Call to method convertTermsToFormData\\(\\) on an unknown class Chill\\\\MainBundle\\\\Search\\\\HasAdvancedSearchForm\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/SearchController.php + + - + message: "#^Call to method getAdvancedSearchTitle\\(\\) on an unknown class Chill\\\\MainBundle\\\\Search\\\\HasAdvancedSearchForm\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/SearchController.php + + - + message: "#^PHPDoc tag @var for variable \\$variable contains unknown class Chill\\\\MainBundle\\\\Controller\\\\Chill\\\\MainBundle\\\\Search\\\\HasAdvancedSearchFormInterface\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/SearchController.php + + - + message: "#^PHPDoc tag @var for variable \\$variable contains unknown class Chill\\\\MainBundle\\\\Controller\\\\Chill\\\\MainBundle\\\\Search\\\\SearchProvider\\.$#" + count: 2 + path: src/Bundle/ChillMainBundle/Controller/SearchController.php + + - + message: "#^Variable \\$variable in PHPDoc tag @var does not match assigned variable \\$search\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/SearchController.php + + - + message: "#^Variable \\$variable in PHPDoc tag @var does not match assigned variable \\$searchProvider\\.$#" + count: 2 + path: src/Bundle/ChillMainBundle/Controller/SearchController.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\:\\:getGroupCenters\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/TimelineCenterController.php + + - + message: "#^Instanceof between Symfony\\\\Component\\\\HttpFoundation\\\\RedirectResponse and Symfony\\\\Component\\\\HttpFoundation\\\\Response will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/UserController.php + + - + message: "#^Unreachable statement \\- code above always terminates\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/UserController.php + + - + message: "#^PHPDoc tag @return has invalid value \\(array\\<0\\: CronJobInterface\\[\\], 1\\: array\\\\>\\)\\: Unexpected token \"\\:\", expected '\\>' at offset 26$#" + count: 1 + path: src/Bundle/ChillMainBundle/Cron/CronManager.php + + - + message: "#^Property Chill\\\\MainBundle\\\\DataFixtures\\\\ORM\\\\LoadAddressReferences\\:\\:\\$container is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadAddressReferences.php + + - + message: "#^Property Chill\\\\MainBundle\\\\DataFixtures\\\\ORM\\\\LoadLocationType\\:\\:\\$container is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadLocationType.php + + - + message: "#^Property Chill\\\\MainBundle\\\\DataFixtures\\\\ORM\\\\LoadUsers\\:\\:\\$container is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadUsers.php + + - + message: "#^Parameter \\$factory of method Chill\\\\MainBundle\\\\DependencyInjection\\\\ChillMainExtension\\:\\:addWidgetFactory\\(\\) has invalid type Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\WidgetFactoryInterface\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/ChillMainExtension.php + + - + message: "#^Method Symfony\\\\Component\\\\DependencyInjection\\\\Container\\:\\:getParameter\\(\\) invoked with 2 parameters, 1 required\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/CompilerPass/ShortMessageCompilerPass.php + + - + message: "#^Offset 'queries' does not exist on array\\{scheme\\: 'ovh', host\\?\\: string, port\\?\\: int\\<0, 65535\\>, user\\?\\: string, pass\\?\\: string, path\\?\\: string, query\\?\\: string, fragment\\?\\: string\\}\\.$#" + count: 5 + path: src/Bundle/ChillMainBundle/DependencyInjection/CompilerPass/ShortMessageCompilerPass.php + + - + message: "#^Offset 'queries' does not exist on array\\{scheme\\?\\: string, host\\?\\: string, port\\?\\: int\\<0, 65535\\>, user\\?\\: string, pass\\?\\: string, path\\?\\: string, query\\?\\: string, fragment\\?\\: string\\}\\|false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/CompilerPass/ShortMessageCompilerPass.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\NodeDefinition\\:\\:canBeUnset\\(\\)\\.$#" + count: 2 + path: src/Bundle/ChillMainBundle/DependencyInjection/Configuration.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\NodeDefinition\\:\\:children\\(\\)\\.$#" + count: 3 + path: src/Bundle/ChillMainBundle/DependencyInjection/Configuration.php + + - + message: "#^Method Chill\\\\MainBundle\\\\DependencyInjection\\\\Configuration\\:\\:getWidgetAliasesbyPlace\\(\\) has invalid return type Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/Configuration.php + + - + message: "#^Method Chill\\\\MainBundle\\\\DependencyInjection\\\\Configuration\\:\\:getWidgetAliasesbyPlace\\(\\) should return Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\type but returns array\\\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/Configuration.php + + - + message: "#^Method Chill\\\\MainBundle\\\\DependencyInjection\\\\Configuration\\:\\:getWidgetFactories\\(\\) has invalid return type Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\WidgetFactoryInterface\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/Configuration.php + + - + message: "#^Method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\TreeBuilder\\:\\:getRootNode\\(\\) invoked with 1 parameter, 0 required\\.$#" + count: 3 + path: src/Bundle/ChillMainBundle/DependencyInjection/Configuration.php + + - + message: "#^PHPDoc tag @param has invalid value \\(WidgetFactoryInterface\\[\\]\\)\\: Unexpected token \"\\\\n \", expected variable at offset 42$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/Configuration.php + + - + message: "#^Parameter \\$place of method Chill\\\\MainBundle\\\\DependencyInjection\\\\Configuration\\:\\:getWidgetAliasesbyPlace\\(\\) has invalid type Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/Configuration.php + + - + message: "#^Parameter \\$widgetFactories of method Chill\\\\MainBundle\\\\DependencyInjection\\\\Configuration\\:\\:setWidgetFactories\\(\\) has invalid type Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\WidgetFactoryInterface\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/Configuration.php + + - + message: "#^Call to an undefined method Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\WidgetFactoryInterface\\:\\:getAllowedPlaces\\(\\)\\.$#" + count: 3 + path: src/Bundle/ChillMainBundle/DependencyInjection/Widget/AbstractWidgetsCompilerPass.php + + - + message: "#^Instanceof between Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\HasWidgetFactoriesExtensionInterface and Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\HasWidgetFactoriesExtensionInterface will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/Widget/AbstractWidgetsCompilerPass.php + + - + message: "#^Method Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\AbstractWidgetsCompilerPass\\:\\:isPlaceAllowedForWidget\\(\\) has invalid return type Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\unknown\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/Widget/AbstractWidgetsCompilerPass.php + + - + message: "#^Method Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\AbstractWidgetsCompilerPass\\:\\:isPlaceAllowedForWidget\\(\\) should return Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\unknown but returns false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/Widget/AbstractWidgetsCompilerPass.php + + - + message: "#^Method Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\AbstractWidgetsCompilerPass\\:\\:isPlaceAllowedForWidget\\(\\) should return Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\unknown but returns true\\.$#" + count: 2 + path: src/Bundle/ChillMainBundle/DependencyInjection/Widget/AbstractWidgetsCompilerPass.php + + - + message: "#^Negated boolean expression is always false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/Widget/AbstractWidgetsCompilerPass.php + + - + message: "#^Parameter \\$order of method Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\AbstractWidgetFactory\\:\\:createDefinition\\(\\) has invalid type Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/Widget/Factory/AbstractWidgetFactory.php + + - + message: "#^Parameter \\$place of method Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\AbstractWidgetFactory\\:\\:createDefinition\\(\\) has invalid type Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/Widget/Factory/AbstractWidgetFactory.php + + - + message: "#^Parameter \\$order of method Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\WidgetFactoryInterface\\:\\:createDefinition\\(\\) has invalid type Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/Widget/Factory/WidgetFactoryInterface.php + + - + message: "#^Parameter \\$place of method Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\WidgetFactoryInterface\\:\\:configureOptions\\(\\) has invalid type Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/Widget/Factory/WidgetFactoryInterface.php + + - + message: "#^Parameter \\$place of method Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\WidgetFactoryInterface\\:\\:createDefinition\\(\\) has invalid type Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/Widget/Factory/WidgetFactoryInterface.php + + - + message: "#^PHPDoc tag @param for parameter \\$factory with type Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\WidgetFactoryInterface is not subtype of native type Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\WidgetFactoryInterface\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/Widget/HasWidgetFactoriesExtensionInterface.php + + - + message: "#^Parameter \\$factory of method Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\HasWidgetFactoriesExtensionInterface\\:\\:addWidgetFactory\\(\\) has invalid type Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\WidgetFactoryInterface\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/Widget/HasWidgetFactoriesExtensionInterface.php + + - + message: "#^Strict comparison using \\=\\=\\= between int\\<1, max\\> and 0 will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Doctrine/Type/NativeDateIntervalType.php + + - + message: "#^Instanceof between DateTime and DateTime will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/Address.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Entity\\\\Address\\:\\:\\$validTo \\(DateTime\\|null\\) does not accept DateTimeInterface\\|null\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/Address.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and string will always evaluate to false\\.$#" + count: 2 + path: src/Bundle/ChillMainBundle/Entity/Address.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Entity\\\\AddressReference\\:\\:setPostcode\\(\\) should return Chill\\\\MainBundle\\\\Entity\\\\Address but returns \\$this\\(Chill\\\\MainBundle\\\\Entity\\\\AddressReference\\)\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/AddressReference.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Entity\\\\AddressReference\\:\\:\\$addressCanonical is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/AddressReference.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Entity\\\\AddressReference\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/AddressReference.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Entity\\\\Country\\:\\:getCountryCode\\(\\) has invalid return type Chill\\\\MainBundle\\\\Entity\\\\the\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/Country.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Entity\\\\Country\\:\\:getCountryCode\\(\\) should return Chill\\\\MainBundle\\\\Entity\\\\the but returns string\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/Country.php + + + - + message: "#^Property Chill\\\\MainBundle\\\\Entity\\\\GeographicalUnit\\:\\:\\$geom is unused\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/GeographicalUnit.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Entity\\\\GeographicalUnit\\:\\:\\$unitRefId is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/GeographicalUnit.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Entity\\\\GroupCenter\\:\\:getPermissionsGroup\\(\\) has invalid return type Chill\\\\MainBundle\\\\Entity\\\\PermissionGroup\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/GroupCenter.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Entity\\\\GroupCenter\\:\\:getPermissionsGroup\\(\\) should return Chill\\\\MainBundle\\\\Entity\\\\PermissionGroup but returns Chill\\\\MainBundle\\\\Entity\\\\PermissionsGroup\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/GroupCenter.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Entity\\\\GroupCenter\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/GroupCenter.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Entity\\\\GroupCenter\\:\\:\\$permissionsGroup \\(Chill\\\\MainBundle\\\\Entity\\\\PermissionsGroup\\) does not accept Doctrine\\\\Common\\\\Collections\\\\ArrayCollection\\<\\*NEVER\\*, \\*NEVER\\*\\>\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/GroupCenter.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Entity\\\\Language\\:\\:getName\\(\\) should return string but returns array\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/Language.php + + - + message: "#^PHPDoc tag @param has invalid value \\(string array \\$name\\)\\: Unexpected token \"array\", expected variable at offset 49$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/Language.php + + - + message: "#^PHPDoc tag @var for property Chill\\\\MainBundle\\\\Entity\\\\Language\\:\\:\\$name with type string is incompatible with native type array\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/Language.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Entity\\\\Location\\:\\:\\$createdAt \\(DateTimeImmutable\\|null\\) does not accept DateTimeInterface\\|null\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/Location.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Entity\\\\Location\\:\\:\\$updatedAt \\(DateTimeImmutable\\|null\\) does not accept DateTimeInterface\\|null\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/Location.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Entity\\\\Notification\\:\\:\\$updatedAt \\(DateTimeImmutable\\|null\\) does not accept DateTimeInterface\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/Notification.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Entity\\\\NotificationComment\\:\\:\\$createdAt \\(DateTimeImmutable\\|null\\) does not accept DateTimeInterface\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/NotificationComment.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Entity\\\\NotificationComment\\:\\:\\$updateAt \\(DateTimeImmutable\\|null\\) does not accept DateTimeInterface\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/NotificationComment.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Entity\\\\PermissionsGroup\\:\\:\\$groupCenters is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/PermissionsGroup.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Entity\\\\PermissionsGroup\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/PermissionsGroup.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Entity\\\\PostalCode\\:\\:\\$canonical is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/PostalCode.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Entity\\\\PostalCode\\:\\:\\$deletedAt is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/PostalCode.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Entity\\\\PostalCode\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/PostalCode.php + + - + message: "#^PHPDoc tag @var for property Chill\\\\MainBundle\\\\Entity\\\\Regroupment\\:\\:\\$centers with type Chill\\\\MainBundle\\\\Entity\\\\Center is not subtype of native type Doctrine\\\\Common\\\\Collections\\\\Collection\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/Regroupment.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Entity\\\\RoleScope\\:\\:\\$permissionsGroups is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/RoleScope.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and array will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/User.php + + - + message: "#^Call to an undefined method Traversable\\<\\(int\\|string\\), mixed\\>\\:\\:current\\(\\)\\.$#" + count: 2 + path: src/Bundle/ChillMainBundle/Entity/Workflow/EntityWorkflow.php + + - + message: "#^Call to an undefined method Traversable\\<\\(int\\|string\\), mixed\\>\\:\\:next\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/Workflow/EntityWorkflow.php + + - + message: "#^Call to an undefined method Traversable\\<\\(int\\|string\\), mixed\\>\\:\\:rewind\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/Workflow/EntityWorkflow.php + + - + message: "#^Call to an undefined method Traversable\\<\\(int\\|string\\), mixed\\>\\:\\:valid\\(\\)\\.$#" + count: 2 + path: src/Bundle/ChillMainBundle/Entity/Workflow/EntityWorkflow.php + + - + message: "#^Unreachable statement \\- code above always terminates\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Entity/Workflow/EntityWorkflowStep.php + + - + message: "#^Access to offset \\(int\\|string\\) on an unknown class Chill\\\\MainBundle\\\\Export\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/ExportManager.php + + - + message: "#^Call to an undefined method Chill\\\\MainBundle\\\\Export\\\\ExportElementInterface\\:\\:requiredRole\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/ExportManager.php + + - + message: "#^Call to function is_iterable\\(\\) with array will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/ExportManager.php + + - + message: "#^Empty array passed to foreach\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/ExportManager.php + + - + message: "#^Instanceof between Doctrine\\\\ORM\\\\QueryBuilder and Doctrine\\\\ORM\\\\QueryBuilder will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/ExportManager.php + + - + message: "#^Iterating over an object of an unknown class Chill\\\\MainBundle\\\\Export\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/ExportManager.php + + - + message: "#^PHPDoc tag @param for parameter \\$aliases with type Generator is incompatible with native type array\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/ExportManager.php + + - + message: "#^Parameter \\$data of method Chill\\\\MainBundle\\\\Export\\\\ExportManager\\:\\:handleAggregators\\(\\) has invalid type Chill\\\\MainBundle\\\\Export\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/ExportManager.php + + - + message: "#^Parameter \\$data of method Chill\\\\MainBundle\\\\Export\\\\ExportManager\\:\\:retrieveUsedFilters\\(\\) has invalid type Chill\\\\MainBundle\\\\Export\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/ExportManager.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and Chill\\\\MainBundle\\\\Export\\\\type will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/ExportManager.php + + - + message: "#^Yield can be used only with these return types\\: Generator, Iterator, Traversable, iterable\\.$#" + count: 5 + path: src/Bundle/ChillMainBundle/Export/ExportManager.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and array\\|string will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/Formatter/CSVFormatter.php + + - + message: "#^Variable \\$data in PHPDoc tag @var does not match assigned variable \\$contentData\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/Formatter/CSVFormatter.php + + - + message: "#^Parameter \\#2 \\$exportAlias \\(Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\type\\) of method Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\CSVListFormatter\\:\\:buildForm\\(\\) should be compatible with parameter \\$exportAlias \\(string\\) of method Chill\\\\MainBundle\\\\Export\\\\FormatterInterface\\:\\:buildForm\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/Formatter/CSVListFormatter.php + + - + message: "#^Parameter \\$exportAlias of method Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\CSVListFormatter\\:\\:buildForm\\(\\) has invalid type Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/Formatter/CSVListFormatter.php + + - + message: "#^Parameter \\#2 \\$exportAlias \\(Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\type\\) of method Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\CSVPivotedListFormatter\\:\\:buildForm\\(\\) should be compatible with parameter \\$exportAlias \\(string\\) of method Chill\\\\MainBundle\\\\Export\\\\FormatterInterface\\:\\:buildForm\\(\\)$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/Formatter/CSVPivotedListFormatter.php + + - + message: "#^Parameter \\$exportAlias of method Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\CSVPivotedListFormatter\\:\\:buildForm\\(\\) has invalid type Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/Formatter/CSVPivotedListFormatter.php + + - + message: "#^Access to offset 'format' on an unknown class Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/Formatter/SpreadSheetFormatter.php + + - + message: "#^Access to offset mixed on an unknown class Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\type\\.$#" + count: 2 + path: src/Bundle/ChillMainBundle/Export/Formatter/SpreadSheetFormatter.php + + - + message: "#^Iterating over an object of an unknown class Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\type\\.$#" + count: 3 + path: src/Bundle/ChillMainBundle/Export/Formatter/SpreadSheetFormatter.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\SpreadSheetFormatter\\:\\:\\$aggregatorsData \\(Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\type\\) does not accept array\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/Formatter/SpreadSheetFormatter.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\SpreadSheetFormatter\\:\\:\\$aggregatorsData has unknown class Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\type as its type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/Formatter/SpreadSheetFormatter.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\SpreadSheetFormatter\\:\\:\\$formatterData \\(Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\type\\) does not accept array\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/Formatter/SpreadSheetFormatter.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\SpreadSheetFormatter\\:\\:\\$formatterData has unknown class Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\type as its type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/Formatter/SpreadSheetFormatter.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\SpreadSheetFormatter\\:\\:\\$result \\(Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\type\\) does not accept array\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/Formatter/SpreadSheetFormatter.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\SpreadSheetFormatter\\:\\:\\$result has unknown class Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\type as its type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/Formatter/SpreadSheetFormatter.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and string will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/Formatter/SpreadSheetFormatter.php + + - + message: "#^Instanceof between string and DateTimeInterface will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/Formatter/SpreadsheetListFormatter.php + + - + message: "#^PHPDoc tag @param has invalid value \\(Array\\(String\\) \\$aggregatorAliases Array of the aliases of the aggregators\\. An aggregator do the \"group by\" on the data\\. \\$aggregatorAliases\\)\\: Unexpected token \"\\(\", expected variable at offset 343$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/FormatterInterface.php + + - + message: "#^PHPDoc tag @var for property Chill\\\\MainBundle\\\\Export\\\\Helper\\\\ExportAddressHelper\\:\\:\\$unitNamesKeysCache contains unresolvable type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/Helper/ExportAddressHelper.php + + - + message: "#^PHPDoc tag @var for property Chill\\\\MainBundle\\\\Export\\\\Helper\\\\ExportAddressHelper\\:\\:\\$unitNamesKeysCache with type mixed is not subtype of native type array\\|null\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/Helper/ExportAddressHelper.php + + - + message: "#^Call to method createSearchForm\\(\\) on an unknown class Chill\\\\MainBundle\\\\Search\\\\HasAdvancedSearchForm\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/AdvancedSearchType.php + + - + message: "#^PHPDoc tag @param for parameter \\$resolver with type Chill\\\\MainBundle\\\\Form\\\\OptionsResolverInterface is not subtype of native type Symfony\\\\Component\\\\OptionsResolver\\\\OptionsResolver\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/CenterType.php + + - + message: "#^Parameter \\$resolver of method Chill\\\\MainBundle\\\\Form\\\\CenterType\\:\\:configureOptions\\(\\) has invalid type Chill\\\\MainBundle\\\\Form\\\\OptionsResolverInterface\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/CenterType.php + + - + message: "#^Instanceof between Chill\\\\MainBundle\\\\Entity\\\\Address and Chill\\\\MainBundle\\\\Entity\\\\Address will always evaluate to true\\.$#" + count: 2 + path: src/Bundle/ChillMainBundle/Form/DataMapper/AddressDataMapper.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and Chill\\\\MainBundle\\\\Entity\\\\Address will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/DataMapper/AddressDataMapper.php + + - + message: "#^Else branch is unreachable because previous condition is always true\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/DataMapper/ScopePickerDataMapper.php + + - + message: "#^Instanceof between Chill\\\\MainBundle\\\\Entity\\\\Scope and Chill\\\\MainBundle\\\\Entity\\\\Scope will always evaluate to true\\.$#" + count: 2 + path: src/Bundle/ChillMainBundle/Form/DataMapper/ScopePickerDataMapper.php + + - + message: "#^Unreachable statement \\- code above always terminates\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/DataMapper/ScopePickerDataMapper.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and string will always evaluate to false\\.$#" + count: 2 + path: src/Bundle/ChillMainBundle/Form/DataTransformer/IdToEntityDataTransformer.php + + - + message: "#^PHPDoc tag @param for parameter \\$resolver with type Chill\\\\MainBundle\\\\Form\\\\OptionsResolverInterface is not subtype of native type Symfony\\\\Component\\\\OptionsResolver\\\\OptionsResolver\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/LocationFormType.php + + - + message: "#^Parameter \\$resolver of method Chill\\\\MainBundle\\\\Form\\\\LocationFormType\\:\\:configureOptions\\(\\) has invalid type Chill\\\\MainBundle\\\\Form\\\\OptionsResolverInterface\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/LocationFormType.php + + - + message: "#^PHPDoc tag @param for parameter \\$resolver with type Chill\\\\MainBundle\\\\Form\\\\OptionsResolverInterface is not subtype of native type Symfony\\\\Component\\\\OptionsResolver\\\\OptionsResolver\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/PermissionsGroupType.php + + - + message: "#^Parameter \\$resolver of method Chill\\\\MainBundle\\\\Form\\\\PermissionsGroupType\\:\\:configureOptions\\(\\) has invalid type Chill\\\\MainBundle\\\\Form\\\\OptionsResolverInterface\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/PermissionsGroupType.php + + - + message: "#^PHPDoc tag @param for parameter \\$resolver with type Chill\\\\MainBundle\\\\Form\\\\OptionsResolverInterface is not subtype of native type Symfony\\\\Component\\\\OptionsResolver\\\\OptionsResolver\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/ScopeType.php + + - + message: "#^Parameter \\$resolver of method Chill\\\\MainBundle\\\\Form\\\\ScopeType\\:\\:configureOptions\\(\\) has invalid type Chill\\\\MainBundle\\\\Form\\\\OptionsResolverInterface\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/ScopeType.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Form\\\\Type\\\\ChillPhoneNumberType\\:\\:\\$phoneNumberUtil is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/Type/ChillPhoneNumberType.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\:\\:getId\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/Type/CommentType.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and array\\\\|Chill\\\\MainBundle\\\\Entity\\\\User will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/Type/DataTransformer/EntityToJsonTransformer.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Form\\\\Type\\\\DataTransformer\\\\MultipleObjectsToIdTransformer\\:\\:transform\\(\\) should return Doctrine\\\\Common\\\\Collections\\\\ArrayCollection but returns array\\\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/Type/DataTransformer/MultipleObjectsToIdTransformer.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and string will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/Type/DataTransformer/ObjectToIdTransformer.php + + - + message: "#^Call to function is_int\\(\\) with int will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/Type/DataTransformer/PostalCodeToIdTransformer.php + + - + message: "#^Instanceof between Chill\\\\MainBundle\\\\Export\\\\ExportInterface and Chill\\\\MainBundle\\\\Export\\\\ExportInterface will always evaluate to true\\.$#" + count: 2 + path: src/Bundle/ChillMainBundle/Form/Type/Export/ExportType.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Form\\\\Type\\\\Select2CountryType\\:\\:\\$requestStack is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/Type/Select2CountryType.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\OptionsResolver\\\\OptionsResolver\\:\\:replaceDefaults\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/Type/Select2EntityType.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Form\\\\Type\\\\Select2LanguageType\\:\\:\\$requestStack is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/Type/Select2LanguageType.php + + - + message: "#^PHPDoc tag @param for parameter \\$resolver with type Chill\\\\MainBundle\\\\Form\\\\OptionsResolverInterface is not subtype of native type Symfony\\\\Component\\\\OptionsResolver\\\\OptionsResolver\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/UserType.php + + - + message: "#^Parameter \\$resolver of method Chill\\\\MainBundle\\\\Form\\\\UserType\\:\\:configureOptions\\(\\) has invalid type Chill\\\\MainBundle\\\\Form\\\\OptionsResolverInterface\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/UserType.php + + - + message: "#^Method Symfony\\\\Component\\\\OptionsResolver\\\\OptionsResolver\\:\\:setDefined\\(\\) invoked with 2 parameters, 1 required\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/WorkflowStepType.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Notification\\\\Email\\\\NotificationMailer\\:\\:\\$translator is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Notification/Email/NotificationMailer.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Notification\\\\NotificationHandlerManager\\:\\:\\$em is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Notification/NotificationHandlerManager.php + + - + message: "#^Strict comparison using \\=\\=\\= between 0 and float will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Pagination/Paginator.php + + - + message: "#^PHPDoc tag @param for parameter \\$phoneNumber with type string is incompatible with native type libphonenumber\\\\PhoneNumber\\|null\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Phonenumber/PhonenumberHelper.php + + - + message: "#^Expression on left side of \\?\\? is not nullable\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Phonenumber/Templating.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Repository\\\\GeographicalUnitRepository\\:\\:findBy\\(\\) should return Chill\\\\MainBundle\\\\Entity\\\\GeographicalUnit\\|null but returns array\\\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Repository/GeographicalUnitRepository.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Repository\\\\GeographicalUnitRepository\\:\\:\\$em is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Repository/GeographicalUnitRepository.php + + - + message: "#^Return type \\(Chill\\\\MainBundle\\\\Entity\\\\GeographicalUnit\\|null\\) of method Chill\\\\MainBundle\\\\Repository\\\\GeographicalUnitRepository\\:\\:findBy\\(\\) should be compatible with return type \\(array\\\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\\\:\\:findBy\\(\\)$#" + count: 2 + path: src/Bundle/ChillMainBundle/Repository/GeographicalUnitRepository.php + + - + message: "#^The @implements tag of class Chill\\\\MainBundle\\\\Repository\\\\SavedExportRepository describes Doctrine\\\\Persistence\\\\ObjectRepository but the class implements\\: Chill\\\\MainBundle\\\\Repository\\\\SavedExportRepositoryInterface$#" + count: 1 + path: src/Bundle/ChillMainBundle/Repository/SavedExportRepository.php + + - + message: "#^Interface Chill\\\\MainBundle\\\\Repository\\\\SavedExportRepositoryInterface has @implements tag, but can not implement any interface, must extend from it\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Repository/SavedExportRepositoryInterface.php + + - + message: "#^Strict comparison using \\!\\=\\= between null and array\\\\|Chill\\\\MainBundle\\\\Entity\\\\Center will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Repository/UserACLAwareRepository.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Routing\\\\MenuComposer\\:\\:\\$routeCollection is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Routing/MenuComposer.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Routing\\\\MenuTwig\\:\\:\\$container is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Routing/MenuTwig.php + + - + message: "#^Parameter \\$string of method Chill\\\\MainBundle\\\\Search\\\\AbstractSearch\\:\\:parseDate\\(\\) has invalid type Chill\\\\MainBundle\\\\Search\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Search/AbstractSearch.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Search\\\\SearchApi\\:\\:getResults\\(\\) has invalid return type Chill\\\\MainBundle\\\\Search\\\\Model\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Search/SearchApi.php + + - + message: "#^PHPDoc tag @return with type Chill\\\\MainBundle\\\\Search\\\\Model is not subtype of native type Chill\\\\MainBundle\\\\Serializer\\\\Model\\\\Collection\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Search/SearchApi.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Search\\\\SearchApiNoQueryException\\:\\:\\$parameters is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Search/SearchApiNoQueryException.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Search\\\\SearchApiNoQueryException\\:\\:\\$pattern is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Search/SearchApiNoQueryException.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Search\\\\SearchApiNoQueryException\\:\\:\\$types is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Search/SearchApiNoQueryException.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Search\\\\SearchApiResult\\:\\:\\$pertinence is unused\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Search/SearchApiResult.php + + - + message: "#^Else branch is unreachable because previous condition is always true\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Search/SearchProvider.php + + - + message: "#^If condition is always true\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Search/SearchProvider.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Search\\\\SearchProvider\\:\\:getHasAdvancedFormByName\\(\\) has invalid return type Chill\\\\MainBundle\\\\Search\\\\HasAdvancedSearchForm\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Search/SearchProvider.php + + - + message: "#^Parameter \\$subject of method Chill\\\\MainBundle\\\\Search\\\\SearchProvider\\:\\:extractDomain\\(\\) has invalid type Chill\\\\MainBundle\\\\Search\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Search/SearchProvider.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Search\\\\SearchProvider\\:\\:\\$hasAdvancedFormSearchServices has unknown class Chill\\\\MainBundle\\\\Search\\\\HasAdvancedSearchForm as its type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Search/SearchProvider.php + + - + message: "#^Strict comparison using \\!\\=\\= between null and string will always evaluate to true\\.$#" + count: 2 + path: src/Bundle/ChillMainBundle/Search/SearchProvider.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\:\\:getGroupCenters\\(\\)\\.$#" + count: 2 + path: src/Bundle/ChillMainBundle/Security/Authorization/AuthorizationHelper.php + + - + message: "#^Call to method getRoleScopes\\(\\) on an unknown class Chill\\\\MainBundle\\\\Entity\\\\PermissionGroup\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/Authorization/AuthorizationHelper.php + + - + message: "#^Empty array passed to foreach\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/Authorization/AuthorizationHelper.php + + - + message: "#^Instanceof between Chill\\\\MainBundle\\\\Entity\\\\Center\\|string and Symfony\\\\Component\\\\Security\\\\Core\\\\Role\\\\Role will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/Authorization/AuthorizationHelper.php + + - + message: "#^Instanceof between string and Symfony\\\\Component\\\\Security\\\\Core\\\\Role\\\\Role will always evaluate to false\\.$#" + count: 2 + path: src/Bundle/ChillMainBundle/Security/Authorization/AuthorizationHelper.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and Chill\\\\MainBundle\\\\Entity\\\\Scope\\|iterable\\ will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/Authorization/AuthorizationHelper.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and null will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/Authorization/AuthorizationHelper.php + + - + message: "#^Unreachable statement \\- code above always terminates\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/Authorization/AuthorizationHelper.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\DefaultVoterHelper\\:\\:\\$centerResolverDispatcher is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/Authorization/DefaultVoterHelper.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Workflow\\\\EntityWorkflowHandlerInterface\\:\\:getDeletionRoles\\(\\) invoked with 1 parameter, 0 required\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/Authorization/WorkflowEntityDeletionVoter.php + + - + message: "#^Instanceof between Chill\\\\MainBundle\\\\Entity\\\\User and Chill\\\\MainBundle\\\\Entity\\\\User will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/PasswordRecover/PasswordRecoverEvent.php + + - + message: "#^Parameter \\$ip of method Chill\\\\MainBundle\\\\Security\\\\PasswordRecover\\\\PasswordRecoverEvent\\:\\:__construct\\(\\) has invalid type Chill\\\\MainBundle\\\\Security\\\\PasswordRecover\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/PasswordRecover/PasswordRecoverEvent.php + + - + message: "#^Parameter \\$token of method Chill\\\\MainBundle\\\\Security\\\\PasswordRecover\\\\PasswordRecoverEvent\\:\\:__construct\\(\\) has invalid type Chill\\\\MainBundle\\\\Security\\\\PasswordRecover\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/PasswordRecover/PasswordRecoverEvent.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Security\\\\PasswordRecover\\\\PasswordRecoverEvent\\:\\:\\$ip \\(string\\) does not accept Chill\\\\MainBundle\\\\Security\\\\PasswordRecover\\\\type\\|null\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/PasswordRecover/PasswordRecoverEvent.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Security\\\\PasswordRecover\\\\PasswordRecoverEvent\\:\\:\\$token \\(string\\) does not accept Chill\\\\MainBundle\\\\Security\\\\PasswordRecover\\\\type\\|null\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/PasswordRecover/PasswordRecoverEvent.php + + - + message: "#^Call to function is_array\\(\\) with array\\ will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/Resolver/CenterResolverManager.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and array\\\\|Chill\\\\MainBundle\\\\Entity\\\\Center will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/Resolver/CenterResolverManager.php + + - + message: "#^Unreachable statement \\- code above always terminates\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/Resolver/CenterResolverManager.php + + - + message: "#^Instanceof between Chill\\\\MainBundle\\\\Entity\\\\HasCenterInterface and Chill\\\\MainBundle\\\\Entity\\\\HasCenterInterface will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/Resolver/DefaultCenterResolver.php + + - + message: "#^Unreachable statement \\- code above always terminates\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/Resolver/DefaultCenterResolver.php + + - + message: "#^Instanceof between Chill\\\\MainBundle\\\\Entity\\\\HasScopesInterface and Chill\\\\MainBundle\\\\Entity\\\\HasScopesInterface will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/Resolver/DefaultScopeResolver.php + + - + message: "#^Unreachable statement \\- code above always terminates\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/Resolver/DefaultScopeResolver.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Security\\\\Resolver\\\\ResolverTwigExtension\\:\\:resolveCenter\\(\\) has invalid return type Chill\\\\MainBundle\\\\Security\\\\Resolver\\\\Center\\.$#" + count: 2 + path: src/Bundle/ChillMainBundle/Security/Resolver/ResolverTwigExtension.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Security\\\\Resolver\\\\ResolverTwigExtension\\:\\:resolveCenter\\(\\) should return array\\\\|Chill\\\\MainBundle\\\\Security\\\\Resolver\\\\Center\\|null but returns array\\\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/Resolver/ResolverTwigExtension.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Security\\\\Resolver\\\\ScopeResolverDispatcher\\:\\:resolveScope\\(\\) invoked with 0 parameters, 1\\-2 required\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/Resolver/ResolverTwigExtension.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Security\\\\Resolver\\\\ScopeResolverDispatcher\\:\\:resolveScope\\(\\) should return Chill\\\\MainBundle\\\\Entity\\\\Scope\\|iterable\\ but returns null\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/Resolver/ScopeResolverDispatcher.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Security\\\\RoleProvider\\:\\:getRoleTitle\\(\\) should return string but returns null\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/RoleProvider.php + + - + message: "#^Strict comparison using \\!\\=\\= between array\\ and null will always evaluate to true\\.$#" + count: 3 + path: src/Bundle/ChillMainBundle/Security/RoleProvider.php + + - + message: "#^Constant Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\AddressNormalizer\\:\\:NULL_POSTCODE_COUNTRY is unused\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/AddressNormalizer.php + + - + message: "#^Constant Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\AddressNormalizer\\:\\:NULL_VALUE is unused\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/AddressNormalizer.php + + - + message: "#^Instanceof between Chill\\\\MainBundle\\\\Entity\\\\Address and Chill\\\\MainBundle\\\\Entity\\\\Address will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/AddressNormalizer.php + + - + message: "#^Unreachable statement \\- code above always terminates\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/AddressNormalizer.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and Chill\\\\MainBundle\\\\Entity\\\\Embeddable\\\\CommentEmbeddable will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/CommentEmbeddableDocGenNormalizer.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\DateNormalizer\\:\\:normalize\\(\\) should return array\\|ArrayObject\\|bool\\|float\\|int\\|string\\|null but return statement is missing\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/DateNormalizer.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and DateTimeInterface will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/DateNormalizer.php + + - + message: "#^Instanceof between Doctrine\\\\ORM\\\\Mapping\\\\ClassMetadata\\ and Doctrine\\\\ORM\\\\Mapping\\\\ClassMetadata will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/DoctrineExistingEntityNormalizer.php + + - + message: "#^Strict comparison using \\=\\=\\= between false and true will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/DoctrineExistingEntityNormalizer.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Serializer\\\\Normalizer\\\\NotificationNormalizer\\:\\:\\$notificationHandlerManager is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/NotificationNormalizer.php + + - + message: "#^Result of && is always false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/UserNormalizer.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and Chill\\\\MainBundle\\\\Entity\\\\User will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/UserNormalizer.php + + - + message: "#^Call to function is_int\\(\\) with int will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Service/Import/AddressReferenceFromBano.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Mime\\\\RawMessage\\:\\:getSubject\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Service/Mailer/ChillMailer.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Mime\\\\RawMessage\\:\\:getTo\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Service/Mailer/ChillMailer.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Templating\\\\CSVCellTwig\\:\\:getName\\(\\) has invalid return type Chill\\\\MainBundle\\\\Templating\\\\The\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Templating/CSVCellTwig.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Templating\\\\CSVCellTwig\\:\\:getName\\(\\) should return Chill\\\\MainBundle\\\\Templating\\\\The but returns string\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Templating/CSVCellTwig.php + + - + message: "#^Instanceof between string and DateTimeInterface will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Templating/ChillTwigHelper.php + + - + message: "#^PHPDoc tag @return has invalid value \\(array\\<'to'\\: DateTimeImmutable, 'from'\\: DateTimeImmutable\\>\\)\\: Unexpected token \"\\:\", expected '\\>' at offset 29$#" + count: 1 + path: src/Bundle/ChillMainBundle/Templating/Listing/FilterOrderHelper.php + + - + message: "#^Call to an undefined method Symfony\\\\Contracts\\\\Translation\\\\TranslatorInterface\\:\\:getFallbackLocales\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Templating/TranslatableStringHelper.php + + - + message: "#^Strict comparison using \\=\\=\\= between array\\{\\} and non\\-empty\\-array\\ will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Templating/TranslatableStringHelper.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Templating\\\\TranslatableStringTwig\\:\\:getName\\(\\) has invalid return type Chill\\\\MainBundle\\\\Templating\\\\The\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Templating/TranslatableStringTwig.php + + - + message: "#^Method Chill\\\\MainBundle\\\\Templating\\\\TranslatableStringTwig\\:\\:getName\\(\\) should return Chill\\\\MainBundle\\\\Templating\\\\The but returns string\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Templating/TranslatableStringTwig.php + + - + message: "#^Call to method render\\(\\) on an unknown class Chill\\\\MainBundle\\\\Templating\\\\Widget\\\\Widget\\\\WidgetInterface\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Templating/Widget/WidgetRenderingTwig.php + + - + message: "#^Method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) invoked with 2 parameters, 1 required\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Templating/Widget/WidgetRenderingTwig.php + + - + message: "#^PHPDoc tag @var for variable \\$widget contains unknown class Chill\\\\MainBundle\\\\Templating\\\\Widget\\\\Widget\\\\WidgetInterface\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Templating/Widget/WidgetRenderingTwig.php + + - + message: "#^Parameter \\$context of method Chill\\\\MainBundle\\\\Timeline\\\\TimelineBuilder\\:\\:countItems\\(\\) has invalid type Chill\\\\MainBundle\\\\Timeline\\\\unknown\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Timeline/TimelineBuilder.php + + - + message: "#^Unreachable statement \\- code above always terminates\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Timeline/TimelineBuilder.php + + - + message: "#^Parameter \\$context of method Chill\\\\MainBundle\\\\Timeline\\\\TimelineProviderInterface\\:\\:getEntityTemplate\\(\\) has invalid type Chill\\\\MainBundle\\\\Timeline\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Timeline/TimelineProviderInterface.php + + - + message: "#^Parameter \\$entity of method Chill\\\\MainBundle\\\\Timeline\\\\TimelineProviderInterface\\:\\:getEntityTemplate\\(\\) has invalid type Chill\\\\MainBundle\\\\Timeline\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Timeline/TimelineProviderInterface.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Util\\\\DateRangeCovering\\:\\:\\$intervals is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Util/DateRangeCovering.php + + - + message: "#^Access to an undefined property Symfony\\\\Component\\\\Validator\\\\Constraint\\:\\:\\$messageDuplicateEmail\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Validation/Validator/UserUniqueEmailAndUsername.php + + - + message: "#^Access to an undefined property Symfony\\\\Component\\\\Validator\\\\Constraint\\:\\:\\$messageDuplicateUsername\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Validation/Validator/UserUniqueEmailAndUsername.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and string will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Validation/Validator/ValidPhonenumber.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and Chill\\\\MainBundle\\\\Entity\\\\User will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Validator/Constraints/Entity/UserCircleConsistencyValidator.php + + - + message: "#^Access to an undefined property Symfony\\\\Component\\\\Validator\\\\Constraint\\:\\:\\$element\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Validator/Constraints/Export/ExportElementConstraintValidator.php + + - + message: "#^Property Chill\\\\MainBundle\\\\Workflow\\\\Templating\\\\WorkflowTwigExtensionRuntime\\:\\:\\$entityWorkflowManager is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Workflow/Templating/WorkflowTwigExtensionRuntime.php + + - + message: "#^Instanceof between Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflow and Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflow will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Workflow/Validator/EntityWorkflowCreationValidator.php + + - + message: "#^Instanceof between Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflowStep and Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflowStep will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Workflow/Validator/StepDestValidValidator.php + + - + message: "#^PHPDoc tag @param for parameter \\$postSql with type Chill\\\\PersonBundle\\\\Actions\\\\type is incompatible with native type string\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Actions/ActionEvent.php + + - + message: "#^Parameter \\$postSql of method Chill\\\\PersonBundle\\\\Actions\\\\ActionEvent\\:\\:addPostSql\\(\\) has invalid type Chill\\\\PersonBundle\\\\Actions\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Actions/ActionEvent.php + + - + message: "#^Method Chill\\\\PersonBundle\\\\Actions\\\\Remove\\\\PersonMove\\:\\:getSQL\\(\\) has invalid return type Chill\\\\PersonBundle\\\\Actions\\\\Remove\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Actions/Remove/PersonMove.php + + - + message: "#^Method Chill\\\\PersonBundle\\\\Actions\\\\Remove\\\\PersonMove\\:\\:getSQL\\(\\) should return Chill\\\\PersonBundle\\\\Actions\\\\Remove\\\\type but returns array\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Actions/Remove/PersonMove.php + + - + message: "#^Method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) invoked with 2 parameters, 1 required\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Actions/Remove/PersonMove.php + + - + message: "#^Method Chill\\\\PersonBundle\\\\CRUD\\\\Controller\\\\EntityPersonCRUDController\\:\\:filterQueryEntitiesByPerson\\(\\) has invalid return type Chill\\\\PersonBundle\\\\CRUD\\\\Controller\\\\QueryBuilder\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/CRUD/Controller/EntityPersonCRUDController.php + + - + message: "#^PHPDoc tag @param for parameter \\$qb with type Chill\\\\PersonBundle\\\\CRUD\\\\Controller\\\\QueryBuilder is not subtype of native type Doctrine\\\\ORM\\\\QueryBuilder\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/CRUD/Controller/EntityPersonCRUDController.php + + - + message: "#^PHPDoc tag @return with type Chill\\\\PersonBundle\\\\CRUD\\\\Controller\\\\QueryBuilder is not subtype of native type Doctrine\\\\ORM\\\\QueryBuilder\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/CRUD/Controller/EntityPersonCRUDController.php + + - + message: "#^PHPDoc tag @throws with type Chill\\\\PersonBundle\\\\CRUD\\\\Controller\\\\Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\NotFoundHttpException is not subtype of Throwable$#" + count: 1 + path: src/Bundle/ChillPersonBundle/CRUD/Controller/EntityPersonCRUDController.php + + - + message: "#^Parameter \\$action of method Chill\\\\PersonBundle\\\\CRUD\\\\Controller\\\\EntityPersonCRUDController\\:\\:createEntity\\(\\) has invalid type Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\string\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/CRUD/Controller/EntityPersonCRUDController.php + + - + message: "#^Parameter \\$qb of method Chill\\\\PersonBundle\\\\CRUD\\\\Controller\\\\EntityPersonCRUDController\\:\\:filterQueryEntitiesByPerson\\(\\) has invalid type Chill\\\\PersonBundle\\\\CRUD\\\\Controller\\\\QueryBuilder\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/CRUD/Controller/EntityPersonCRUDController.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\DependencyInjection\\\\Extension\\\\ExtensionInterface\\:\\:addWidgetFactory\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/ChillPersonBundle.php + + - + message: "#^Iterating over an object of an unknown class Chill\\\\PersonBundle\\\\Actions\\\\Remove\\\\type\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Command/ChillPersonMoveCommand.php + + - + message: "#^PHPDoc tag @var for property Chill\\\\PersonBundle\\\\Command\\\\ImportSocialWorkMetadata\\:\\:\\$importer with type Psr\\\\Log\\\\LoggerInterface is not subtype of native type Chill\\\\PersonBundle\\\\Service\\\\Import\\\\ChillImporter\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Command/ImportSocialWorkMetadata.php + + - + message: "#^Method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) invoked with 2 parameters, 1 required\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/AccompanyingCourseApiController.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Controller\\\\AccompanyingCourseApiController\\:\\:\\$accompanyingPeriodACLAwareRepository is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/AccompanyingCourseApiController.php + + - + message: "#^Variable \\$accompanyingPeriod in PHPDoc tag @var does not match assigned variable \\$action\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/AccompanyingCourseApiController.php + + - + message: "#^Strict comparison using \\!\\=\\= between null and Doctrine\\\\Common\\\\Collections\\\\Collection will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/AccompanyingCourseController.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/AccompanyingCourseController.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Serializer\\\\SerializerInterface\\:\\:normalize\\(\\)\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Controller/AccompanyingCourseWorkController.php + + - + message: "#^Method Chill\\\\PersonBundle\\\\Controller\\\\AccompanyingCourseWorkController\\:\\:createDeleteForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/AccompanyingCourseWorkController.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodWork will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/AccompanyingCourseWorkController.php + + - + message: "#^Call to an undefined method Psr\\\\Container\\\\ContainerInterface\\:\\:getParameter\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/AccompanyingPeriodController.php + + - + message: "#^Method Symfony\\\\Component\\\\Form\\\\FormInterface\\:\\:isValid\\(\\) invoked with 1 parameter, 0 required\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Controller/AccompanyingPeriodController.php + + - + message: "#^Method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) invoked with 2 parameters, 1 required\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/AccompanyingPeriodController.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod will always evaluate to false\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Controller/AccompanyingPeriodController.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\HttpFoundation\\\\Session\\\\SessionInterface\\:\\:getFlashBag\\(\\)\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Controller/HouseholdCompositionController.php + + - + message: "#^Call to an undefined method Doctrine\\\\Common\\\\Collections\\\\Collection&iterable\\\\:\\:initialize\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/HouseholdController.php + + - + message: "#^Call to an undefined method Doctrine\\\\Persistence\\\\ObjectRepository\\\\:\\:findById\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/HouseholdMemberController.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Serializer\\\\SerializerInterface\\:\\:normalize\\(\\)\\.$#" + count: 3 + path: src/Bundle/ChillPersonBundle/Controller/HouseholdMemberController.php + + - + message: "#^Elseif condition is always true\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Controller/PersonAddressController.php + + - + message: "#^Method Chill\\\\PersonBundle\\\\Controller\\\\PersonAddressController\\:\\:createCreateForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/PersonAddressController.php + + - + message: "#^Method Chill\\\\PersonBundle\\\\Controller\\\\PersonAddressController\\:\\:createEditForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/PersonAddressController.php + + - + message: "#^PHPDoc tag @param for parameter \\$person with type Chill\\\\PersonBundle\\\\Controller\\\\Chill\\\\PersonBundle\\\\Entity\\\\Person is not subtype of native type Chill\\\\PersonBundle\\\\Entity\\\\Person\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/PersonAddressController.php + + - + message: "#^Parameter \\$person of method Chill\\\\PersonBundle\\\\Controller\\\\PersonAddressController\\:\\:validatePerson\\(\\) has invalid type Chill\\\\PersonBundle\\\\Controller\\\\Chill\\\\PersonBundle\\\\Entity\\\\Person\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/PersonAddressController.php + + - + message: "#^Call to an undefined method Doctrine\\\\ORM\\\\EntityRepository\\\\:\\:findOneByEntity\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/PersonController.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Form\\\\FormInterface\\:\\:isClicked\\(\\)\\.$#" + count: 3 + path: src/Bundle/ChillPersonBundle/Controller/PersonController.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\:\\:getGroupCenters\\(\\)\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Controller/PersonController.php + + - + message: "#^Method Chill\\\\PersonBundle\\\\Controller\\\\PersonController\\:\\:_validatePersonAndAccompanyingPeriod\\(\\) is unused\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/PersonController.php + + - + message: "#^Method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) invoked with 2 parameters, 1 required\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Controller/PersonController.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Controller\\\\PersonController\\:\\:\\$logger is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/PersonController.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and Chill\\\\PersonBundle\\\\Entity\\\\Person will always evaluate to false\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Controller/PersonController.php + + - + message: "#^Access to an undefined property Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:\\$counters\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Controller/PersonDuplicateController.php + + - + message: "#^Call to an undefined method Doctrine\\\\Persistence\\\\ObjectRepository\\\\:\\:countByParameters\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/PersonDuplicateController.php + + - + message: "#^Cannot access property \\$getId on null\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/PersonDuplicateController.php + + - + message: "#^Iterating over an object of an unknown class Chill\\\\PersonBundle\\\\Actions\\\\Remove\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/PersonDuplicateController.php + + - + message: "#^Method Chill\\\\PersonBundle\\\\Controller\\\\PersonDuplicateController\\:\\:_getCounters\\(\\) never returns null so it can be removed from the return type\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/PersonDuplicateController.php + + - + message: "#^Method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) invoked with 2 parameters, 1 required\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/PersonDuplicateController.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Controller\\\\PersonDuplicateController\\:\\:\\$translator \\(Symfony\\\\Component\\\\Translation\\\\TranslatorInterface\\) does not accept Symfony\\\\Contracts\\\\Translation\\\\TranslatorInterface\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/PersonDuplicateController.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Controller\\\\PersonDuplicateController\\:\\:\\$translator is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/PersonDuplicateController.php + + - + message: "#^Call to function is_int\\(\\) with int will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/ReassignAccompanyingPeriodController.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Controller\\\\ReassignAccompanyingPeriodController\\:\\:\\$userRender is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/ReassignAccompanyingPeriodController.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Controller\\\\RelationshipApiController\\:\\:\\$validator is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/RelationshipApiController.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Controller\\\\SocialWorkGoalApiController\\:\\:\\$paginator is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/SocialWorkGoalApiController.php + + - + message: "#^Method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) invoked with 2 parameters, 1 required\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/TimelinePersonController.php + + - + message: "#^Unreachable statement \\- code above always terminates\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadAccompanyingPeriodNotifications.php + + - + message: "#^Invalid array key type array\\\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadRelationships.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\NodeDefinition\\:\\:canBeDisabled\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/DependencyInjection/Configuration.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\NodeDefinition\\:\\:values\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/DependencyInjection/Configuration.php + + - + message: "#^Method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\TreeBuilder\\:\\:getRootNode\\(\\) invoked with 1 parameter, 0 required\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/DependencyInjection/Configuration.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Doctrine\\\\DQL\\\\AddressPart\\:\\:\\$part is unused\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Doctrine/DQL/AddressPart.php + + - + message: "#^Result of method Doctrine\\\\ORM\\\\Query\\\\Parser\\:\\:match\\(\\) \\(void\\) is used\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Doctrine/DQL/AddressPart.php + + - + message: "#^Call to an undefined method Doctrine\\\\Common\\\\Collections\\\\Collection&iterable\\\\:\\:matching\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php + + - + message: "#^Call to an undefined method Doctrine\\\\Common\\\\Collections\\\\Collection\\:\\:matching\\(\\)\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php + + - + message: "#^Instanceof between Chill\\\\PersonBundle\\\\Entity\\\\Person and Chill\\\\PersonBundle\\\\Entity\\\\Person will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php + + + - + message: "#^Method Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\:\\:getCreatedAt\\(\\) should return DateTime\\|null but returns DateTimeInterface\\|null\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php + + - + message: "#^Method Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\:\\:getRecursiveSocialActions\\(\\) has invalid return type Chill\\\\PersonBundle\\\\Entity\\\\SocialAction\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php + + - + message: "#^Method Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\:\\:getRecursiveSocialIssues\\(\\) has invalid return type Chill\\\\PersonBundle\\\\Entity\\\\SocialIssues\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php + + - + message: "#^Negated boolean expression is always true\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php + + - + message: "#^PHPDoc tag @return with type array\\ is incompatible with native type Doctrine\\\\Common\\\\Collections\\\\Collection\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php + + - + message: "#^PHPDoc tag @return with type iterable is not subtype of native type Doctrine\\\\Common\\\\Collections\\\\Collection\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\:\\:\\$updatedAt is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\:\\:\\$updatedBy is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodStepHistory will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php + + - + message: "#^Unreachable statement \\- code above always terminates\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodWork\\:\\:\\$createdAt \\(DateTimeImmutable\\|null\\) does not accept DateTimeInterface\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWork.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodWork\\:\\:\\$endDate \\(DateTimeImmutable\\|null\\) does not accept DateTimeInterface\\|null\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWork.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodWork\\:\\:\\$startDate \\(DateTimeImmutable\\|null\\) does not accept DateTimeInterface\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWork.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodWork\\:\\:\\$updatedAt \\(DateTimeImmutable\\|null\\) does not accept DateTimeInterface\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWork.php + + - + message: "#^PHPDoc tag @param for parameter \\$createdAt with type DateTimeImmutable\\|null is not subtype of native type DateTimeInterface\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWorkEvaluation.php + + - + message: "#^PHPDoc tag @param for parameter \\$updatedAt with type DateTimeImmutable\\|null is not subtype of native type DateTimeInterface\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWorkEvaluation.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodWorkEvaluation\\:\\:\\$createdAt \\(DateTimeImmutable\\|null\\) does not accept DateTimeInterface\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWorkEvaluation.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodWorkEvaluation\\:\\:\\$updatedAt \\(DateTimeImmutable\\|null\\) does not accept DateTimeInterface\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWorkEvaluation.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\Comment\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/Comment.php + + - + message: "#^Method Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriodParticipation\\:\\:checkSameStartEnd\\(\\) is unused\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriodParticipation.php + + - + message: "#^Call to an undefined method Doctrine\\\\Common\\\\Collections\\\\Collection&iterable\\\\:\\:matching\\(\\)\\.$#" + count: 3 + path: src/Bundle/ChillPersonBundle/Entity/Household/Household.php + + - + message: "#^Call to an undefined method Doctrine\\\\Common\\\\Collections\\\\Collection\\:\\:matching\\(\\)\\.$#" + count: 5 + path: src/Bundle/ChillPersonBundle/Entity/Household/Household.php + + - + message: "#^Call to an undefined method Traversable\\<\\(int\\|string\\), mixed\\>\\:\\:uasort\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Household/Household.php + + - + message: "#^Cannot call method filter\\(\\) on array\\\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Household/Household.php + + - + message: "#^Cannot call method toArray\\(\\) on array\\\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Household/Household.php + + - + message: "#^Method Chill\\\\PersonBundle\\\\Entity\\\\Household\\\\Household\\:\\:getAddresses\\(\\) should return array\\ but returns Doctrine\\\\Common\\\\Collections\\\\Collection\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Household/Household.php + + - + message: "#^PHPDoc tag @return with type array\\ is incompatible with native type Doctrine\\\\Common\\\\Collections\\\\Collection\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Household/Household.php + + - + message: "#^PHPDoc tag @return with type array\\ is incompatible with native type Doctrine\\\\Common\\\\Collections\\\\Collection\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Household/Household.php + + - + message: "#^Strict comparison using \\!\\=\\= between null and Chill\\\\PersonBundle\\\\Entity\\\\Household\\\\HouseholdMember will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Household/Household.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and int will always evaluate to false\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Entity/Household/Household.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\Household\\\\PersonHouseholdAddress\\:\\:\\$address is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Household/PersonHouseholdAddress.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\Household\\\\PersonHouseholdAddress\\:\\:\\$household is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Household/PersonHouseholdAddress.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\Household\\\\PersonHouseholdAddress\\:\\:\\$person is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Household/PersonHouseholdAddress.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\Household\\\\PersonHouseholdAddress\\:\\:\\$validFrom is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Household/PersonHouseholdAddress.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\Household\\\\PersonHouseholdAddress\\:\\:\\$validTo is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Household/PersonHouseholdAddress.php + + - + message: "#^PHPDoc tag @param has invalid value \\(string array \\$name\\)\\: Unexpected token \"array\", expected variable at offset 49$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/MaritalStatus.php + + - + message: "#^PHPDoc tag @return with type string is incompatible with native type array\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/MaritalStatus.php + + - + message: "#^Call to an undefined method Doctrine\\\\Common\\\\Collections\\\\Collection&iterable\\\\:\\:matching\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Person.php + + - + message: "#^Call to an undefined method Doctrine\\\\Common\\\\Collections\\\\Collection&iterable\\\\:\\:matching\\(\\)\\.$#" + count: 3 + path: src/Bundle/ChillPersonBundle/Entity/Person.php + + - + message: "#^Call to an undefined method Doctrine\\\\Common\\\\Collections\\\\Collection&iterable\\\\:\\:matching\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Person.php + + - + message: "#^Call to an undefined method Doctrine\\\\Common\\\\Collections\\\\Collection\\:\\:matching\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Person.php + + - + message: "#^Instanceof between DateTime and DateTimeInterface will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Person.php + + - + message: "#^Negated boolean expression is always true\\.$#" + count: 3 + path: src/Bundle/ChillPersonBundle/Entity/Person.php + + - + message: "#^PHPDoc tag @return with type array\\ is incompatible with native type Doctrine\\\\Common\\\\Collections\\\\Collection\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Person.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:\\$calendars is unused\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Person.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:\\$center is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Person.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:\\$currentHouseholdAt is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Person.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:\\$deathdate \\(DateTimeImmutable\\|null\\) does not accept DateTimeInterface\\|null\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Person.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:\\$maritalStatusDate \\(DateTime\\|null\\) does not accept DateTimeInterface\\|null\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Person.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:\\$periodLocatedOn is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Person.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:\\$proxyAccompanyingPeriodOpenState is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Person.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:\\$spokenLanguages \\(Doctrine\\\\Common\\\\Collections\\\\ArrayCollection\\) does not accept Doctrine\\\\Common\\\\Collections\\\\Collection\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Person.php + + - + message: "#^Strict comparison using \\=\\=\\= between true and Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriodParticipation\\|null will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Person.php + + - + message: "#^Unreachable statement \\- code above always terminates\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Person.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\Person\\\\PersonResource\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Person/PersonResource.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\Person\\\\ResidentialAddress\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Person/ResidentialAddress.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\PersonAltName\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/PersonAltName.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\PersonPhone\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/PersonPhone.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\Relationships\\\\Relationship\\:\\:\\$createdAt \\(DateTimeImmutable\\|null\\) does not accept DateTimeInterface\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Relationships/Relationship.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\Relationships\\\\Relationship\\:\\:\\$updatedAt \\(DateTimeImmutable\\|null\\) does not accept DateTimeInterface\\|null\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/Relationships/Relationship.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\SocialWork\\\\Result\\:\\:\\$desactivationDate \\(DateTime\\|null\\) does not accept DateTimeInterface\\|null\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/SocialWork/Result.php + + - + message: "#^If condition is always false\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Entity/SocialWork/SocialAction.php + + - + message: "#^Negated boolean expression is always true\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Entity/SocialWork/SocialAction.php + + - + message: "#^Call to an undefined method Chill\\\\PersonBundle\\\\Entity\\\\SocialWork\\\\SocialAction\\:\\:getSocialIssue\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/SocialWork/SocialIssue.php + + - + message: "#^Call to an undefined method Chill\\\\PersonBundle\\\\Entity\\\\SocialWork\\\\SocialAction\\:\\:setSocialIssue\\(\\)\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Entity/SocialWork/SocialIssue.php + + - + message: "#^If condition is always false\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Entity/SocialWork/SocialIssue.php + + - + message: "#^Negated boolean expression is always true\\.$#" + count: 4 + path: src/Bundle/ChillPersonBundle/Entity/SocialWork/SocialIssue.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Entity\\\\SocialWork\\\\SocialIssue\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/SocialWork/SocialIssue.php + + - + message: "#^Strict comparison using \\=\\=\\= between DateTimeImmutable and null will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Event/Person/PersonAddressMoveEvent.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and DateTimeImmutable will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Event/Person/PersonAddressMoveEvent.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Export\\\\Aggregator\\\\AccompanyingCourseAggregators\\\\DurationAggregator\\:\\:\\$translator is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Export/Aggregator/AccompanyingCourseAggregators/DurationAggregator.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Export\\\\Aggregator\\\\EvaluationAggregators\\\\ByEndDateAggregator\\:\\:\\$translator is unused\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Export/Aggregator/EvaluationAggregators/ByEndDateAggregator.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Export\\\\Aggregator\\\\EvaluationAggregators\\\\ByMaxDateAggregator\\:\\:\\$translator is unused\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Export/Aggregator/EvaluationAggregators/ByMaxDateAggregator.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Export\\\\Aggregator\\\\EvaluationAggregators\\\\ByStartDateAggregator\\:\\:\\$translator is unused\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Export/Aggregator/EvaluationAggregators/ByStartDateAggregator.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Export\\\\Aggregator\\\\HouseholdAggregators\\\\ChildrenNumberAggregator\\:\\:\\$translator is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Export/Aggregator/HouseholdAggregators/ChildrenNumberAggregator.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Export\\\\Export\\\\ListAccompanyingPeriod\\:\\:\\$userHelper is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Export/Export/ListAccompanyingPeriod.php + + - + message: "#^Call to method extractOtherValue\\(\\) on an unknown class Chill\\\\CustomFieldsBundle\\\\Service\\\\CustomFieldInterface\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Export/Export/ListPerson.php + + - + message: "#^Call to method getChoices\\(\\) on an unknown class Chill\\\\CustomFieldsBundle\\\\Service\\\\CustomFieldInterface\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Export/Export/ListPerson.php + + - + message: "#^Call to method isChecked\\(\\) on an unknown class Chill\\\\CustomFieldsBundle\\\\Service\\\\CustomFieldInterface\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Export/Export/ListPerson.php + + - + message: "#^Call to method isMultiple\\(\\) on an unknown class Chill\\\\CustomFieldsBundle\\\\Service\\\\CustomFieldInterface\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Export/Export/ListPerson.php + + - + message: "#^Call to method render\\(\\) on an unknown class Chill\\\\CustomFieldsBundle\\\\Service\\\\CustomFieldInterface\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Export/Export/ListPerson.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Export\\\\Export\\\\ListPersonDuplicate\\:\\:\\$translator \\(Symfony\\\\Component\\\\Translation\\\\TranslatorInterface\\) does not accept Symfony\\\\Contracts\\\\Translation\\\\TranslatorInterface\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Export/Export/ListPersonDuplicate.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Export\\\\Filter\\\\AccompanyingCourseFilters\\\\AdministrativeLocationFilter\\:\\:\\$translatableStringHelper is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/AdministrativeLocationFilter.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Export\\\\Filter\\\\AccompanyingCourseFilters\\\\SocialActionFilter\\:\\:\\$translatableStringHelper is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/SocialActionFilter.php + + - + message: "#^Method Chill\\\\PersonBundle\\\\Export\\\\Filter\\\\AccompanyingCourseFilters\\\\UserScopeFilter\\:\\:getUserMainScope\\(\\) is unused\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/UserScopeFilter.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Export\\\\Filter\\\\SocialWorkFilters\\\\SocialWorkTypeFilter\\:\\:\\$socialActionRender is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Export/Filter/SocialWorkFilters/SocialWorkTypeFilter.php + + - + message: "#^PHPDoc tag @param for parameter \\$personRepository with type Chill\\\\PersonBundle\\\\Form\\\\ChoiceLoader\\\\EntityRepository is not subtype of native type Chill\\\\PersonBundle\\\\Repository\\\\PersonRepository\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Form/ChoiceLoader/PersonChoiceLoader.php + + - + message: "#^Parameter \\$personRepository of method Chill\\\\PersonBundle\\\\Form\\\\ChoiceLoader\\\\PersonChoiceLoader\\:\\:__construct\\(\\) has invalid type Chill\\\\PersonBundle\\\\Form\\\\ChoiceLoader\\\\EntityRepository\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Form/ChoiceLoader/PersonChoiceLoader.php + + - + message: "#^Method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) invoked with 2 parameters, 1 required\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Form/CreationPersonType.php + + - + message: "#^Call to function is_array\\(\\) with Doctrine\\\\Common\\\\Collections\\\\Collection will always evaluate to false\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Form/DataMapper/PersonAltNameDataMapper.php + + - + message: "#^Call to method getData\\(\\) on an unknown class Chill\\\\PersonBundle\\\\Form\\\\DataMapper\\\\FormInterface\\.$#" + count: 3 + path: src/Bundle/ChillPersonBundle/Form/DataMapper/PersonAltNameDataMapper.php + + - + message: "#^Parameter \\#1 \\$forms \\(array\\\\) of method Chill\\\\PersonBundle\\\\Form\\\\DataMapper\\\\PersonAltNameDataMapper\\:\\:mapFormsToData\\(\\) should be compatible with parameter \\$forms \\(iterable\\&Traversable\\) of method Symfony\\\\Component\\\\Form\\\\DataMapperInterface\\:\\:mapFormsToData\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Form/DataMapper/PersonAltNameDataMapper.php + + - + message: "#^Parameter \\$forms of method Chill\\\\PersonBundle\\\\Form\\\\DataMapper\\\\PersonAltNameDataMapper\\:\\:mapFormsToData\\(\\) has invalid type Chill\\\\PersonBundle\\\\Form\\\\DataMapper\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Form/DataMapper/PersonAltNameDataMapper.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Form\\\\PersonResourceType\\:\\:\\$personRender is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Form/PersonResourceType.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Form\\\\PersonResourceType\\:\\:\\$thirdPartyRender is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Form/PersonResourceType.php + + - + message: "#^PHPDoc tag @param for parameter \\$resolver with type Chill\\\\PersonBundle\\\\Form\\\\OptionsResolverInterface is not subtype of native type Symfony\\\\Component\\\\OptionsResolver\\\\OptionsResolver\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Form/PersonType.php + + - + message: "#^Parameter \\$resolver of method Chill\\\\PersonBundle\\\\Form\\\\PersonType\\:\\:configureOptions\\(\\) has invalid type Chill\\\\PersonBundle\\\\Form\\\\OptionsResolverInterface\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Form/PersonType.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Form\\\\PersonType\\:\\:\\$parameterBag is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Form/PersonType.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Form\\\\PersonType\\:\\:\\$translatableStringHelper \\(Chill\\\\MainBundle\\\\Templating\\\\TranslatableStringHelper\\) does not accept Chill\\\\MainBundle\\\\Templating\\\\TranslatableStringHelperInterface\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Form/PersonType.php + + - + message: "#^Strict comparison using \\=\\=\\= between 'create' and 'create' will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Form/SocialWork/SocialIssueType.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Form\\\\Type\\\\PickPersonType\\:\\:\\$user \\(Chill\\\\MainBundle\\\\Entity\\\\User\\) does not accept string\\|Stringable\\|Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Form/Type/PickPersonType.php + + - + message: "#^Call to an undefined method Doctrine\\\\Common\\\\Collections\\\\Collection&iterable\\\\:\\:matching\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Household/MembersEditor.php + + - + message: "#^Method Doctrine\\\\Common\\\\Collections\\\\ExpressionBuilder\\:\\:isNull\\(\\) invoked with 2 parameters, 1 required\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Household/MembersEditor.php + + - + message: "#^Cannot call method getId\\(\\) on string\\|Stringable\\|Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Privacy/PrivacyEventSubscriber.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Repository\\\\AccompanyingPeriod\\\\AccompanyingPeriodWorkGoalRepository\\:\\:\\$repository is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriod/AccompanyingPeriodWorkGoalRepository.php + + - + message: "#^Call to an undefined method Doctrine\\\\ORM\\\\EntityRepository\\:\\:countByAccompanyingPeriod\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriod/AccompanyingPeriodWorkRepository.php + + - + message: "#^Call to an undefined method Doctrine\\\\ORM\\\\EntityRepository\\:\\:findByAccompanyingPeriod\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriod/AccompanyingPeriodWorkRepository.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Repository\\\\AccompanyingPeriod\\\\CommentRepository\\:\\:\\$repository is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriod/CommentRepository.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Repository\\\\AccompanyingPeriod\\\\OriginRepository\\:\\:\\$repository is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriod/OriginRepository.php + + - + message: "#^PHPDoc tag @param has invalid value \\(array\\|PostalCode\\[\\]\\)\\: Unexpected token \"\\\\n \\*\", expected variable at offset 36$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriodACLAwareRepository.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Repository\\\\AccompanyingPeriodParticipationRepository\\:\\:\\$repository is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Repository/AccompanyingPeriodParticipationRepository.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Repository\\\\Household\\\\HouseholdMembersRepository\\:\\:\\$repository is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Repository/Household/HouseholdMembersRepository.php + + - + message: "#^Method Chill\\\\PersonBundle\\\\Repository\\\\Household\\\\PositionRepository\\:\\:findOneBy\\(\\) should return array\\ but returns object\\|null\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Repository/Household/PositionRepository.php + + - + message: "#^Return type \\(array\\\\) of method Chill\\\\PersonBundle\\\\Repository\\\\Household\\\\PositionRepository\\:\\:findOneBy\\(\\) should be compatible with return type \\(object\\|null\\) of method Doctrine\\\\Persistence\\\\ObjectRepository\\\\:\\:findOneBy\\(\\)$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Repository/Household/PositionRepository.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Repository\\\\PersonACLAwareRepository\\:\\:\\$countryRepository is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Repository/PersonACLAwareRepository.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Repository\\\\PersonAltNameRepository\\:\\:\\$repository is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Repository/PersonAltNameRepository.php + + - + message: "#^PHPDoc tag @return with type array\\\\|null is not subtype of native type array\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Repository/ResidentialAddressRepository.php + + - + message: "#^Method Chill\\\\PersonBundle\\\\Search\\\\PersonSearch\\:\\:renderResult\\(\\) should return string but returns array\\\\>\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Search/PersonSearch.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Search\\\\SearchHouseholdApiProvider\\:\\:\\$authorizationHelper is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Search/SearchHouseholdApiProvider.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Search\\\\SearchHouseholdApiProvider\\:\\:\\$security is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Search/SearchHouseholdApiProvider.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Search\\\\SearchPersonApiProvider\\:\\:\\$authorizationHelper is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Search/SearchPersonApiProvider.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Search\\\\SearchPersonApiProvider\\:\\:\\$security is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Search/SearchPersonApiProvider.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Security\\\\Authorization\\\\AccompanyingPeriodVoter\\:\\:\\$security is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Security/Authorization/AccompanyingPeriodVoter.php + + - + message: "#^PHPDoc tag @return with type bool\\|void is not subtype of native type bool\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Security/Authorization/AccompanyingPeriodWorkEvaluationDocumentVoter.php + + - + message: "#^Elseif branch is unreachable because previous condition is always true\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Security/Authorization/AccompanyingPeriodWorkVoter.php + + - + message: "#^Instanceof between \\*NEVER\\* and Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Security/Authorization/AccompanyingPeriodWorkVoter.php + + - + message: "#^Instanceof between Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodWork and Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodWork will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Security/Authorization/AccompanyingPeriodWorkVoter.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Security\\\\Authorization\\\\AccompanyingPeriodWorkVoter\\:\\:\\$voterHelper is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Security/Authorization/AccompanyingPeriodWorkVoter.php + + - + message: "#^Unreachable statement \\- code above always terminates\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Security/Authorization/AccompanyingPeriodWorkVoter.php + + - + message: "#^Constant Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodDocGenNormalizer\\:\\:IGNORE_FIRST_PASS_KEY is unused\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodDocGenNormalizer.php + + - + message: "#^Strict comparison using \\!\\=\\= between Chill\\\\PersonBundle\\\\Entity\\\\Person\\|Chill\\\\ThirdPartyBundle\\\\Entity\\\\ThirdParty and null will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodDocGenNormalizer.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and null will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodDocGenNormalizer.php + + - + message: "#^Unreachable statement \\- code above always terminates\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodDocGenNormalizer.php + + - + message: "#^Unreachable statement \\- code above always terminates\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodParticipationNormalizer.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodWorkDenormalizer\\:\\:\\$em is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkDenormalizer.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodWorkDenormalizer\\:\\:\\$workRepository is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkDenormalizer.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodWorkEvaluationDocumentNormalizer\\:\\:\\$registry is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkEvaluationDocumentNormalizer.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodWorkEvaluationNormalizer\\:\\:\\$registry is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkEvaluationNormalizer.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\AccompanyingPeriodWorkNormalizer\\:\\:\\$registry is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkNormalizer.php + + - + message: "#^Call to function is_array\\(\\) with 'concerned' will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/MembersEditorNormalizer.php + + - + message: "#^Expression on left side of \\?\\? is not nullable\\.$#" + count: 3 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/MembersEditorNormalizer.php + + - + message: "#^Left side of && is always false\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/MembersEditorNormalizer.php + + - + message: "#^Strict comparison using \\=\\=\\= between false and false will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/MembersEditorNormalizer.php + + - + message: "#^Instanceof between Chill\\\\PersonBundle\\\\Entity\\\\Person and Chill\\\\PersonBundle\\\\Entity\\\\Person will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonDocGenNormalizer.php + + - + message: "#^Method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\PersonDocGenNormalizer\\:\\:hasGroup\\(\\) is unused\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonDocGenNormalizer.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and Chill\\\\PersonBundle\\\\Entity\\\\Person will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonDocGenNormalizer.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\PersonJsonNormalizer\\:\\:\\$phoneNumberHelper is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonJsonNormalizer.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and Chill\\\\PersonBundle\\\\Entity\\\\Relationships\\\\Relationship will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/RelationshipDocGenNormalizer.php + + - + message: "#^Method Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\SocialIssueNormalizer\\:\\:normalize\\(\\) should return array\\|ArrayObject\\|bool\\|float\\|int\\|string\\|null but return statement is missing\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/SocialIssueNormalizer.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and Chill\\\\PersonBundle\\\\Entity\\\\SocialWork\\\\SocialIssue will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/SocialIssueNormalizer.php + + - + message: "#^PHPDoc tag @return with type array\\|ArrayObject\\|bool\\|float\\|int\\|string\\|void\\|null is not subtype of native type array\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/WorkflowNormalizer.php + + - + message: "#^Call to an undefined method Chill\\\\DocStoreBundle\\\\Entity\\\\Document\\:\\:setCourse\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Service/DocGenerator/AccompanyingPeriodContext.php + + - + message: "#^Call to function array_key_exists\\(\\) with 'category' and array will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Service/DocGenerator/AccompanyingPeriodContext.php + + - + message: "#^Else branch is unreachable because ternary operator condition is always true\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Service/DocGenerator/AccompanyingPeriodContext.php + + - + message: "#^Call to an undefined method Chill\\\\DocStoreBundle\\\\Entity\\\\Document\\:\\:setPerson\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Service/DocGenerator/PersonContext.php + + - + message: "#^Call to function array_key_exists\\(\\) with 'category' and array will always evaluate to true\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Service/DocGenerator/PersonContext.php + + - + message: "#^Comparison operation \"\\<\" between 1 and array results in an error\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Service/DocGenerator/PersonContext.php + + - + message: "#^Else branch is unreachable because ternary operator condition is always true\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Service/DocGenerator/PersonContext.php + + - + message: "#^PHPDoc tag @param has invalid value \\(array\\\\|SocialIssue\\|string, SocialAction\\|null\\>\\|Evaluation\\|Goal\\|Result\\> \\$previousRow\\)\\: Unexpected token \"\\<\", expected type at offset 333$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Service/Import/SocialWorkMetadata.php + + - + message: "#^PHPDoc tag @return has invalid value \\(array\\\\|SocialIssue\\|string, SocialAction\\|null\\>\\|Evaluation\\|Goal\\|Result\\>\\)\\: Unexpected token \"\\<\", expected type at offset 505$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Service/Import/SocialWorkMetadata.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Service\\\\Import\\\\SocialWorkMetadata\\:\\:\\$socialActionRepository is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Service/Import/SocialWorkMetadata.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Service\\\\Import\\\\SocialWorkMetadata\\:\\:\\$socialIssueRepository is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Service/Import/SocialWorkMetadata.php + + - + message: "#^Call to method getId\\(\\) on an unknown class ChillPersonBundle\\:AccompanyingPeriod\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Timeline/AbstractTimelineAccompanyingPeriod.php + + - + message: "#^Cannot call method setKey\\(\\) on array\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Timeline/TimelineAccompanyingPeriodClosing.php + + - + message: "#^Parameter \\$context of method Chill\\\\PersonBundle\\\\Timeline\\\\TimelineAccompanyingPeriodClosing\\:\\:getEntityTemplate\\(\\) has invalid type Chill\\\\MainBundle\\\\Timeline\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Timeline/TimelineAccompanyingPeriodClosing.php + + - + message: "#^Parameter \\$entity of method Chill\\\\PersonBundle\\\\Timeline\\\\TimelineAccompanyingPeriodClosing\\:\\:getEntityTemplate\\(\\) has invalid type Chill\\\\MainBundle\\\\Timeline\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Timeline/TimelineAccompanyingPeriodClosing.php + + - + message: "#^Cannot call method setKey\\(\\) on array\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Timeline/TimelineAccompanyingPeriodOpening.php + + - + message: "#^Parameter \\$context of method Chill\\\\PersonBundle\\\\Timeline\\\\TimelineAccompanyingPeriodOpening\\:\\:getEntityTemplate\\(\\) has invalid type Chill\\\\MainBundle\\\\Timeline\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Timeline/TimelineAccompanyingPeriodOpening.php + + - + message: "#^Parameter \\$entity of method Chill\\\\PersonBundle\\\\Timeline\\\\TimelineAccompanyingPeriodOpening\\:\\:getEntityTemplate\\(\\) has invalid type Chill\\\\MainBundle\\\\Timeline\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Timeline/TimelineAccompanyingPeriodOpening.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Validator\\\\Constraints\\\\AccompanyingPeriod\\\\AccompanyingPeriodValidityValidator\\:\\:\\$token is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Validator/Constraints/AccompanyingPeriod/AccompanyingPeriodValidityValidator.php + + - + message: "#^Property Chill\\\\PersonBundle\\\\Validator\\\\Constraints\\\\AccompanyingPeriod\\\\ParticipationOverlapValidator\\:\\:\\$thirdpartyRender is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Validator/Constraints/AccompanyingPeriod/ParticipationOverlapValidator.php + + - + message: "#^Strict comparison using \\=\\=\\= between 0 and int\\<2, max\\> will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Validator/Constraints/AccompanyingPeriod/ParticipationOverlapValidator.php + + - + message: "#^Access to an undefined property Symfony\\\\Component\\\\Validator\\\\Constraint\\:\\:\\$message\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Validator/Constraints/Household/HouseholdMembershipSequentialValidator.php + + - + message: "#^Access to an undefined property Symfony\\\\Component\\\\Validator\\\\Constraint\\:\\:\\$message\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Validator/Constraints/Household/MaxHolderValidator.php + + - + message: "#^Access to an undefined property Symfony\\\\Component\\\\Validator\\\\Constraint\\:\\:\\$messageInfinity\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Validator/Constraints/Household/MaxHolderValidator.php + + - + message: "#^Access to an undefined property Symfony\\\\Component\\\\Validator\\\\Constraint\\:\\:\\$message\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Validator/Constraints/Person/BirthdateValidator.php + + - + message: "#^Access to an undefined property Symfony\\\\Component\\\\Validator\\\\Constraint\\:\\:\\$message\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Validator/Constraints/Person/PersonHasCenterValidator.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and string\\|Stringable\\|Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Widget/PersonListWidget.php + + - + message: "#^Call to an undefined method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\NodeParentInterface\\:\\:info\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Widget/PersonListWidgetFactory.php + + - + message: "#^Parameter \\$place of method Chill\\\\PersonBundle\\\\Widget\\\\PersonListWidgetFactory\\:\\:configureOptions\\(\\) has invalid type Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Widget/PersonListWidgetFactory.php + + - + message: "#^Call to an undefined method Doctrine\\\\Persistence\\\\ObjectManager\\:\\:createQuery\\(\\)\\.$#" + count: 2 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Call to an undefined method Doctrine\\\\Persistence\\\\ObjectRepository\\\\:\\:findByCFGroup\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Call to an undefined method Doctrine\\\\Persistence\\\\ObjectRepository\\\\:\\:findByEntity\\(\\)\\.$#" + count: 2 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Call to method getId\\(\\) on an unknown class ChillReportBundle\\:Report\\.$#" + count: 2 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Call to method getPerson\\(\\) on an unknown class ChillReportBundle\\:Report\\.$#" + count: 3 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Method Chill\\\\ReportBundle\\\\Controller\\\\ReportController\\:\\:createAction\\(\\) has invalid return type Chill\\\\ReportBundle\\\\Controller\\\\Response\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Method Chill\\\\ReportBundle\\\\Controller\\\\ReportController\\:\\:createAction\\(\\) should return Chill\\\\ReportBundle\\\\Controller\\\\Response but returns Symfony\\\\Component\\\\HttpFoundation\\\\RedirectResponse\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Method Chill\\\\ReportBundle\\\\Controller\\\\ReportController\\:\\:createAction\\(\\) should return Chill\\\\ReportBundle\\\\Controller\\\\Response but returns Symfony\\\\Component\\\\HttpFoundation\\\\Response\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Method Chill\\\\ReportBundle\\\\Controller\\\\ReportController\\:\\:createCreateForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Method Chill\\\\ReportBundle\\\\Controller\\\\ReportController\\:\\:createEditForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Method Chill\\\\ReportBundle\\\\Controller\\\\ReportController\\:\\:editAction\\(\\) has invalid return type Chill\\\\ReportBundle\\\\Controller\\\\Response\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Method Chill\\\\ReportBundle\\\\Controller\\\\ReportController\\:\\:editAction\\(\\) should return Chill\\\\ReportBundle\\\\Controller\\\\Response but returns Symfony\\\\Component\\\\HttpFoundation\\\\Response\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Method Chill\\\\ReportBundle\\\\Controller\\\\ReportController\\:\\:exportAction\\(\\) has invalid return type Chill\\\\ReportBundle\\\\Controller\\\\A\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Method Chill\\\\ReportBundle\\\\Controller\\\\ReportController\\:\\:exportAction\\(\\) should return Chill\\\\ReportBundle\\\\Controller\\\\A but returns Symfony\\\\Component\\\\HttpFoundation\\\\Response\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Method Chill\\\\ReportBundle\\\\Controller\\\\ReportController\\:\\:listAction\\(\\) has invalid return type Chill\\\\ReportBundle\\\\Controller\\\\Response\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Method Chill\\\\ReportBundle\\\\Controller\\\\ReportController\\:\\:listAction\\(\\) should return Chill\\\\ReportBundle\\\\Controller\\\\Response but returns Symfony\\\\Component\\\\HttpFoundation\\\\Response\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Method Chill\\\\ReportBundle\\\\Controller\\\\ReportController\\:\\:newAction\\(\\) has invalid return type Chill\\\\ReportBundle\\\\Controller\\\\Response\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Method Chill\\\\ReportBundle\\\\Controller\\\\ReportController\\:\\:newAction\\(\\) should return Chill\\\\ReportBundle\\\\Controller\\\\Response but returns Symfony\\\\Component\\\\HttpFoundation\\\\Response\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Method Chill\\\\ReportBundle\\\\Controller\\\\ReportController\\:\\:selectReportTypeAction\\(\\) has invalid return type Chill\\\\ReportBundle\\\\Controller\\\\Response\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Method Chill\\\\ReportBundle\\\\Controller\\\\ReportController\\:\\:selectReportTypeAction\\(\\) should return Chill\\\\ReportBundle\\\\Controller\\\\Response but returns Symfony\\\\Component\\\\HttpFoundation\\\\RedirectResponse\\.$#" + count: 2 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Method Chill\\\\ReportBundle\\\\Controller\\\\ReportController\\:\\:selectReportTypeAction\\(\\) should return Chill\\\\ReportBundle\\\\Controller\\\\Response but returns Symfony\\\\Component\\\\HttpFoundation\\\\Response\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Method Chill\\\\ReportBundle\\\\Controller\\\\ReportController\\:\\:selectReportTypeForExportAction\\(\\) has invalid return type Chill\\\\ReportBundle\\\\Controller\\\\Response\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Method Chill\\\\ReportBundle\\\\Controller\\\\ReportController\\:\\:selectReportTypeForExportAction\\(\\) should return Chill\\\\ReportBundle\\\\Controller\\\\Response but returns Symfony\\\\Component\\\\HttpFoundation\\\\RedirectResponse\\.$#" + count: 2 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Method Chill\\\\ReportBundle\\\\Controller\\\\ReportController\\:\\:selectReportTypeForExportAction\\(\\) should return Chill\\\\ReportBundle\\\\Controller\\\\Response but returns Symfony\\\\Component\\\\HttpFoundation\\\\Response\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Method Chill\\\\ReportBundle\\\\Controller\\\\ReportController\\:\\:updateAction\\(\\) has invalid return type Chill\\\\ReportBundle\\\\Controller\\\\Response\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Method Chill\\\\ReportBundle\\\\Controller\\\\ReportController\\:\\:updateAction\\(\\) should return Chill\\\\ReportBundle\\\\Controller\\\\Response but returns Symfony\\\\Component\\\\HttpFoundation\\\\RedirectResponse\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Method Chill\\\\ReportBundle\\\\Controller\\\\ReportController\\:\\:updateAction\\(\\) should return Chill\\\\ReportBundle\\\\Controller\\\\Response but returns Symfony\\\\Component\\\\HttpFoundation\\\\Response\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Method Chill\\\\ReportBundle\\\\Controller\\\\ReportController\\:\\:viewAction\\(\\) has invalid return type Chill\\\\ReportBundle\\\\Controller\\\\Response\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Method Chill\\\\ReportBundle\\\\Controller\\\\ReportController\\:\\:viewAction\\(\\) should return Chill\\\\ReportBundle\\\\Controller\\\\Response but returns Symfony\\\\Component\\\\HttpFoundation\\\\Response\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) invoked with 2 parameters, 1 required\\.$#" + count: 4 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Negated boolean expression is always false\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Method Chill\\\\ReportBundle\\\\DataFixtures\\\\ORM\\\\LoadReports\\:\\:getRandomChoice\\(\\) never returns string so it can be removed from the return type\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/DataFixtures/ORM/LoadReports.php + + - + message: "#^Method Chill\\\\ReportBundle\\\\DataFixtures\\\\ORM\\\\LoadReports\\:\\:getRandomChoice\\(\\) should return array\\\\|string but returns array\\\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/DataFixtures/ORM/LoadReports.php + + - + message: "#^Method Chill\\\\ReportBundle\\\\DataFixtures\\\\ORM\\\\LoadReports\\:\\:pickChoice\\(\\) has invalid return type Chill\\\\ReportBundle\\\\DataFixtures\\\\ORM\\\\the\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/DataFixtures/ORM/LoadReports.php + + - + message: "#^Strict comparison using \\=\\=\\= between '_other' and Chill\\\\ReportBundle\\\\DataFixtures\\\\ORM\\\\the will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/DataFixtures/ORM/LoadReports.php + + - + message: "#^Strict comparison using \\=\\=\\= between DateTime and null will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/DataFixtures/ORM/LoadReports.php + + - + message: "#^Method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\TreeBuilder\\:\\:getRootNode\\(\\) invoked with 1 parameter, 0 required\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/DependencyInjection/Configuration.php + + - + message: "#^PHPDoc tag @param for parameter \\$scope with type string is incompatible with native type Chill\\\\MainBundle\\\\Entity\\\\Scope\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Entity/Report.php + + - + message: "#^Property Chill\\\\ReportBundle\\\\Entity\\\\Report\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Entity/Report.php + + - + message: "#^Call to method extractOtherValue\\(\\) on an unknown class Chill\\\\CustomFieldsBundle\\\\Service\\\\CustomFieldInterface\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Export/Export/ReportList.php + + - + message: "#^Call to method getChoices\\(\\) on an unknown class Chill\\\\CustomFieldsBundle\\\\Service\\\\CustomFieldInterface\\.$#" + count: 2 + path: src/Bundle/ChillReportBundle/Export/Export/ReportList.php + + - + message: "#^Call to method isChecked\\(\\) on an unknown class Chill\\\\CustomFieldsBundle\\\\Service\\\\CustomFieldInterface\\.$#" + count: 2 + path: src/Bundle/ChillReportBundle/Export/Export/ReportList.php + + - + message: "#^Call to method isMultiple\\(\\) on an unknown class Chill\\\\CustomFieldsBundle\\\\Service\\\\CustomFieldInterface\\.$#" + count: 2 + path: src/Bundle/ChillReportBundle/Export/Export/ReportList.php + + - + message: "#^Call to method render\\(\\) on an unknown class Chill\\\\CustomFieldsBundle\\\\Service\\\\CustomFieldInterface\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Export/Export/ReportList.php + + - + message: "#^Property Chill\\\\ReportBundle\\\\Form\\\\ReportType\\:\\:\\$user \\(Chill\\\\MainBundle\\\\Entity\\\\User\\) does not accept string\\|Stringable\\|Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Form/ReportType.php + + - + message: "#^Call to method getId\\(\\) on an unknown class ChillReportBundle\\:Report\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Timeline/TimelineReportProvider.php + + - + message: "#^Parameter \\$context of method Chill\\\\ReportBundle\\\\Timeline\\\\TimelineReportProvider\\:\\:getEntityTemplate\\(\\) has invalid type Chill\\\\MainBundle\\\\Timeline\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Timeline/TimelineReportProvider.php + + - + message: "#^Parameter \\$entity of method Chill\\\\ReportBundle\\\\Timeline\\\\TimelineReportProvider\\:\\:getEntityTemplate\\(\\) has invalid type Chill\\\\MainBundle\\\\Timeline\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Timeline/TimelineReportProvider.php + + - + message: "#^Method Chill\\\\TaskBundle\\\\Controller\\\\SingleTaskController\\:\\:createDeleteForm\\(\\) should return Symfony\\\\Component\\\\Form\\\\Form but returns Symfony\\\\Component\\\\Form\\\\FormInterface\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Controller/SingleTaskController.php + + - + message: "#^Method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) invoked with 2 parameters, 1 required\\.$#" + count: 6 + path: src/Bundle/ChillTaskBundle/Controller/SingleTaskController.php + + - + message: "#^Property Chill\\\\TaskBundle\\\\Controller\\\\SingleTaskController\\:\\:\\$centerResolverDispatcher is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Controller/SingleTaskController.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and int will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Controller/SingleTaskController.php + + - + message: "#^If condition is always true\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Controller/TaskController.php + + - + message: "#^Method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) invoked with 2 parameters, 1 required\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Controller/TaskController.php + + - + message: "#^PHPDoc tag @param for parameter \\$task with type Chill\\\\TaskBundle\\\\Controller\\\\AbstractTask is not subtype of native type Chill\\\\TaskBundle\\\\Entity\\\\AbstractTask\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Controller/TaskController.php + + - + message: "#^Parameter \\$task of method Chill\\\\TaskBundle\\\\Controller\\\\TaskController\\:\\:createTransitionForm\\(\\) has invalid type Chill\\\\TaskBundle\\\\Controller\\\\AbstractTask\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Controller/TaskController.php + + - + message: "#^Method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\TreeBuilder\\:\\:getRootNode\\(\\) invoked with 1 parameter, 0 required\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/DependencyInjection/Configuration.php + + - + message: "#^Property Chill\\\\TaskBundle\\\\Entity\\\\AbstractTask\\:\\:\\$currentStates \\(Chill\\\\TaskBundle\\\\Entity\\\\json\\) does not accept array\\\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Entity/AbstractTask.php + + - + message: "#^Property Chill\\\\TaskBundle\\\\Entity\\\\AbstractTask\\:\\:\\$currentStates \\(Chill\\\\TaskBundle\\\\Entity\\\\json\\) does not accept default value of type array\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Entity/AbstractTask.php + + - + message: "#^Property Chill\\\\TaskBundle\\\\Entity\\\\AbstractTask\\:\\:\\$currentStates has unknown class Chill\\\\TaskBundle\\\\Entity\\\\json as its type\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Entity/AbstractTask.php + + - + message: "#^Unreachable statement \\- code above always terminates\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Entity/AbstractTask.php + + - + message: "#^Method Chill\\\\TaskBundle\\\\Entity\\\\RecurringTask\\:\\:getOccurenceStartDate\\(\\) has invalid return type Chill\\\\TaskBundle\\\\Entity\\\\dateinterval\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Entity/RecurringTask.php + + - + message: "#^Method Chill\\\\TaskBundle\\\\Entity\\\\RecurringTask\\:\\:getOccurenceWarningInterval\\(\\) has invalid return type Chill\\\\TaskBundle\\\\Entity\\\\dateinterval\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Entity/RecurringTask.php + + - + message: "#^Parameter \\$occurenceStartDate of method Chill\\\\TaskBundle\\\\Entity\\\\RecurringTask\\:\\:setOccurenceStartDate\\(\\) has invalid type Chill\\\\TaskBundle\\\\Entity\\\\dateinterval\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Entity/RecurringTask.php + + - + message: "#^Parameter \\$occurenceWarningInterval of method Chill\\\\TaskBundle\\\\Entity\\\\RecurringTask\\:\\:setOccurenceWarningInterval\\(\\) has invalid type Chill\\\\TaskBundle\\\\Entity\\\\dateinterval\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Entity/RecurringTask.php + + - + message: "#^Property Chill\\\\TaskBundle\\\\Entity\\\\RecurringTask\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Entity/RecurringTask.php + + - + message: "#^Property Chill\\\\TaskBundle\\\\Entity\\\\RecurringTask\\:\\:\\$occurenceStartDate has unknown class Chill\\\\TaskBundle\\\\Entity\\\\dateinterval as its type\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Entity/RecurringTask.php + + - + message: "#^Property Chill\\\\TaskBundle\\\\Entity\\\\RecurringTask\\:\\:\\$occurenceWarningInterval has unknown class Chill\\\\TaskBundle\\\\Entity\\\\dateinterval as its type\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Entity/RecurringTask.php + + - + message: "#^Property Chill\\\\TaskBundle\\\\Entity\\\\RecurringTask\\:\\:\\$singleTasks is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Entity/RecurringTask.php + + - + message: "#^Method Chill\\\\TaskBundle\\\\Entity\\\\SingleTask\\:\\:getWarningDate\\(\\) should return DateTimeImmutable but returns null\\.$#" + count: 2 + path: src/Bundle/ChillTaskBundle/Entity/SingleTask.php + + - + message: "#^Property Chill\\\\TaskBundle\\\\Entity\\\\SingleTask\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Entity/SingleTask.php + + - + message: "#^Property Chill\\\\TaskBundle\\\\Entity\\\\SingleTask\\:\\:\\$warningInterval \\(DateInterval\\) does not accept string\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Entity/SingleTask.php + + - + message: "#^Strict comparison using \\=\\=\\= between DateInterval and null will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Entity/SingleTask.php + + - + message: "#^Strict comparison using \\=\\=\\= between DateTime and null will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Entity/SingleTask.php + + - + message: "#^Method Chill\\\\TaskBundle\\\\Entity\\\\Task\\\\AbstractTaskPlaceEvent\\:\\:getDatetime\\(\\) has invalid return type Chill\\\\TaskBundle\\\\Entity\\\\Task\\\\datetime_immutable\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Entity/Task/AbstractTaskPlaceEvent.php + + - + message: "#^Parameter \\$datetime of method Chill\\\\TaskBundle\\\\Entity\\\\Task\\\\AbstractTaskPlaceEvent\\:\\:setDatetime\\(\\) has invalid type Chill\\\\TaskBundle\\\\Entity\\\\Task\\\\datetime_immutable\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Entity/Task/AbstractTaskPlaceEvent.php + + - + message: "#^Property Chill\\\\TaskBundle\\\\Entity\\\\Task\\\\AbstractTaskPlaceEvent\\:\\:\\$data \\(string\\) does not accept default value of type array\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Entity/Task/AbstractTaskPlaceEvent.php + + - + message: "#^Property Chill\\\\TaskBundle\\\\Entity\\\\Task\\\\AbstractTaskPlaceEvent\\:\\:\\$datetime \\(Chill\\\\TaskBundle\\\\Entity\\\\Task\\\\datetime_immutable\\) does not accept DateTimeImmutable\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Entity/Task/AbstractTaskPlaceEvent.php + + - + message: "#^Property Chill\\\\TaskBundle\\\\Entity\\\\Task\\\\AbstractTaskPlaceEvent\\:\\:\\$datetime has unknown class Chill\\\\TaskBundle\\\\Entity\\\\Task\\\\datetime_immutable as its type\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Entity/Task/AbstractTaskPlaceEvent.php + + - + message: "#^Property Chill\\\\TaskBundle\\\\Entity\\\\Task\\\\AbstractTaskPlaceEvent\\:\\:\\$id is never written, only read\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Entity/Task/AbstractTaskPlaceEvent.php + + - + message: "#^Call to an undefined method Chill\\\\TaskBundle\\\\Entity\\\\AbstractTask\\:\\:getTaskPlaceEvents\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Event/Lifecycle/TaskLifecycleEvent.php + + - + message: "#^Method Knp\\\\Menu\\\\MenuItem\\:\\:setExtras\\(\\) invoked with 2 parameters, 1 required\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Menu/MenuBuilder.php + + - + message: "#^Call to an undefined method Symfony\\\\Contracts\\\\Translation\\\\TranslatorInterface\\:\\:transChoice\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Menu/UserMenuBuilder.php + + - + message: "#^Method Chill\\\\TaskBundle\\\\Repository\\\\SingleTaskRepository\\:\\:findByParameters\\(\\) has invalid return type Chill\\\\TaskBundle\\\\Repository\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Repository/SingleTaskRepository.php + + - + message: "#^Parameter \\$params of method Chill\\\\TaskBundle\\\\Repository\\\\SingleTaskRepository\\:\\:findByParameters\\(\\) has invalid type Chill\\\\TaskBundle\\\\Repository\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Repository/SingleTaskRepository.php + + - + message: "#^Property Chill\\\\TaskBundle\\\\Security\\\\Authorization\\\\AuthorizationEvent\\:\\:\\$subject has unknown class Chill\\\\TaskBundle\\\\Security\\\\Authorization\\\\Chill\\\\TaskBundle\\\\Entity\\\\AbstractTask as its type\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Security/Authorization/AuthorizationEvent.php + + - + message: "#^Property Chill\\\\TaskBundle\\\\Security\\\\Authorization\\\\AuthorizationEvent\\:\\:\\$vote \\(bool\\) does not accept null\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Security/Authorization/AuthorizationEvent.php + + - + message: "#^Method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) invoked with 2 parameters, 1 required\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Security/Authorization/TaskVoter.php + + - + message: "#^Call to method deleteItem\\(\\) on an unknown class Chill\\\\TaskBundle\\\\Templating\\\\UI\\\\CacheItempPoolInterface\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Templating/UI/CountNotificationTask.php + + - + message: "#^Call to method getItem\\(\\) on an unknown class Chill\\\\TaskBundle\\\\Templating\\\\UI\\\\CacheItempPoolInterface\\.$#" + count: 2 + path: src/Bundle/ChillTaskBundle/Templating/UI/CountNotificationTask.php + + - + message: "#^Call to method save\\(\\) on an unknown class Chill\\\\TaskBundle\\\\Templating\\\\UI\\\\CacheItempPoolInterface\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Templating/UI/CountNotificationTask.php + + - + message: "#^Property Chill\\\\TaskBundle\\\\Templating\\\\UI\\\\CountNotificationTask\\:\\:\\$cachePool \\(Chill\\\\TaskBundle\\\\Templating\\\\UI\\\\CacheItempPoolInterface\\) does not accept Psr\\\\Cache\\\\CacheItemPoolInterface\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Templating/UI/CountNotificationTask.php + + - + message: "#^Property Chill\\\\TaskBundle\\\\Templating\\\\UI\\\\CountNotificationTask\\:\\:\\$cachePool has unknown class Chill\\\\TaskBundle\\\\Templating\\\\UI\\\\CacheItempPoolInterface as its type\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Templating/UI/CountNotificationTask.php + + - + message: "#^Call to method getData\\(\\) on an unknown class Chill\\\\MainBundle\\\\Timeline\\\\type\\.$#" + count: 2 + path: src/Bundle/ChillTaskBundle/Timeline/SingleTaskTaskLifeCycleEventTimelineProvider.php + + - + message: "#^Call to method getTask\\(\\) on an unknown class Chill\\\\MainBundle\\\\Timeline\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Timeline/SingleTaskTaskLifeCycleEventTimelineProvider.php + + - + message: "#^Call to method getTransition\\(\\) on an unknown class Chill\\\\MainBundle\\\\Timeline\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Timeline/SingleTaskTaskLifeCycleEventTimelineProvider.php + + - + message: "#^Parameter \\$context of method Chill\\\\TaskBundle\\\\Timeline\\\\SingleTaskTaskLifeCycleEventTimelineProvider\\:\\:getEntityTemplate\\(\\) has invalid type Chill\\\\MainBundle\\\\Timeline\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Timeline/SingleTaskTaskLifeCycleEventTimelineProvider.php + + - + message: "#^Parameter \\$entity of method Chill\\\\TaskBundle\\\\Timeline\\\\SingleTaskTaskLifeCycleEventTimelineProvider\\:\\:getEntityTemplate\\(\\) has invalid type Chill\\\\MainBundle\\\\Timeline\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Timeline/SingleTaskTaskLifeCycleEventTimelineProvider.php + + - + message: "#^Call to method getData\\(\\) on an unknown class Chill\\\\MainBundle\\\\Timeline\\\\type\\.$#" + count: 2 + path: src/Bundle/ChillTaskBundle/Timeline/TaskLifeCycleEventTimelineProvider.php + + - + message: "#^Call to method getTask\\(\\) on an unknown class Chill\\\\MainBundle\\\\Timeline\\\\type\\.$#" + count: 2 + path: src/Bundle/ChillTaskBundle/Timeline/TaskLifeCycleEventTimelineProvider.php + + - + message: "#^Call to method getTransition\\(\\) on an unknown class Chill\\\\MainBundle\\\\Timeline\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Timeline/TaskLifeCycleEventTimelineProvider.php + + - + message: "#^Parameter \\$context of method Chill\\\\TaskBundle\\\\Timeline\\\\TaskLifeCycleEventTimelineProvider\\:\\:getEntityTemplate\\(\\) has invalid type Chill\\\\MainBundle\\\\Timeline\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Timeline/TaskLifeCycleEventTimelineProvider.php + + - + message: "#^Parameter \\$entity of method Chill\\\\TaskBundle\\\\Timeline\\\\TaskLifeCycleEventTimelineProvider\\:\\:getEntityTemplate\\(\\) has invalid type Chill\\\\MainBundle\\\\Timeline\\\\type\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Timeline/TaskLifeCycleEventTimelineProvider.php + + - + message: "#^Call to an undefined method Chill\\\\TaskBundle\\\\Entity\\\\AbstractTask\\:\\:getId\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Workflow/TaskWorkflowManager.php + + - + message: "#^Call to an undefined method Chill\\\\TaskBundle\\\\Workflow\\\\TaskWorkflowDefinition\\:\\:getAssociatedWorkflowName\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Workflow/TaskWorkflowManager.php + + - + message: "#^Call to an undefined method Chill\\\\TaskBundle\\\\Workflow\\\\TaskWorkflowDefinition\\:\\:getWorkflowMetadata\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Workflow/TaskWorkflowManager.php + + - + message: "#^Call to an undefined method Chill\\\\TaskBundle\\\\Workflow\\\\TaskWorkflowDefinition\\:\\:isClosed\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Workflow/TaskWorkflowManager.php + + - + message: "#^Call to an undefined method Chill\\\\TaskBundle\\\\Workflow\\\\TaskWorkflowDefinition\\:\\:supports\\(\\)\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Workflow/TaskWorkflowManager.php + + - + message: "#^Method Symfony\\\\Component\\\\Config\\\\Definition\\\\Builder\\\\TreeBuilder\\:\\:getRootNode\\(\\) invoked with 1 parameter, 0 required\\.$#" + count: 1 + path: src/Bundle/ChillThirdPartyBundle/DependencyInjection/Configuration.php + + - + message: "#^PHPDoc tag @return with type DateTime\\|null is not subtype of native type DateTimeImmutable\\|null\\.$#" + count: 1 + path: src/Bundle/ChillThirdPartyBundle/Entity/ThirdParty.php + + - + message: "#^PHPDoc tag @var for property Chill\\\\ThirdPartyBundle\\\\Entity\\\\ThirdParty\\:\\:\\$categories with type Chill\\\\ThirdPartyBundle\\\\Entity\\\\ThirdPartyCategory is not subtype of native type Doctrine\\\\Common\\\\Collections\\\\Collection\\.$#" + count: 1 + path: src/Bundle/ChillThirdPartyBundle/Entity/ThirdParty.php + + - + message: "#^Property Chill\\\\ThirdPartyBundle\\\\Entity\\\\ThirdParty\\:\\:\\$canonicalized is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillThirdPartyBundle/Entity/ThirdParty.php + + - + message: "#^Property Chill\\\\ThirdPartyBundle\\\\Entity\\\\ThirdParty\\:\\:\\$createdBy is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillThirdPartyBundle/Entity/ThirdParty.php + + - + message: "#^Property Chill\\\\ThirdPartyBundle\\\\Repository\\\\ThirdPartyACLAwareRepository\\:\\:\\$authorizationHelper is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillThirdPartyBundle/Repository/ThirdPartyACLAwareRepository.php + + - + message: "#^Property Chill\\\\ThirdPartyBundle\\\\Repository\\\\ThirdPartyACLAwareRepository\\:\\:\\$security is never read, only written\\.$#" + count: 1 + path: src/Bundle/ChillThirdPartyBundle/Repository/ThirdPartyACLAwareRepository.php + + - + message: "#^Argument of an invalid type string supplied for foreach, only iterables are supported\\.$#" + count: 1 + path: src/Bundle/ChillThirdPartyBundle/Repository/ThirdPartyRepository.php + + - + message: "#^Method Chill\\\\ThirdPartyBundle\\\\Search\\\\ThirdPartySearch\\:\\:renderResult\\(\\) should return string but returns array\\\\.$#" + count: 1 + path: src/Bundle/ChillThirdPartyBundle/Search/ThirdPartySearch.php + + - + message: "#^Unreachable statement \\- code above always terminates\\.$#" + count: 1 + path: src/Bundle/ChillThirdPartyBundle/Security/Voter/ThirdPartyVoter.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and Chill\\\\DocStoreBundle\\\\Entity\\\\StoredObject will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillWopiBundle/src/Controller/Editor.php + + - + message: "#^Strict comparison using \\=\\=\\= between false and array will always evaluate to false\\.$#" + count: 1 + path: src/Bundle/ChillWopiBundle/src/Service/Wopi/AuthorizationManager.php + + - + message: "#^Default value of the parameter \\#2 \\$properties \\(array\\{\\}\\) of method Chill\\\\WopiBundle\\\\Service\\\\Wopi\\\\ChillDocumentManager\\:\\:write\\(\\) is incompatible with type array\\{content\\: string, size\\: int\\}\\.$#" + count: 1 + path: src/Bundle/ChillWopiBundle/src/Service/Wopi/ChillDocumentManager.php + + - + message: "#^Method ChampsLibres\\\\WopiLib\\\\Contract\\\\Service\\\\WopiInterface\\:\\:checkFileInfo\\(\\) invoked with 4 parameters, 3 required\\.$#" + count: 1 + path: src/Bundle/ChillWopiBundle/src/Service/Wopi/ChillWopi.php diff --git a/phpstan-baseline-level-5.neon b/phpstan-baseline-level-5.neon new file mode 100644 index 000000000..23321ba68 --- /dev/null +++ b/phpstan-baseline-level-5.neon @@ -0,0 +1,686 @@ +parameters: + ignoreErrors: + - + message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Controller/ActivityController.php + + - + message: "#^Parameter \\#1 \\$context of method Chill\\\\ActivityBundle\\\\Timeline\\\\TimelineActivityProvider\\:\\:checkContext\\(\\) expects string, Chill\\\\MainBundle\\\\Timeline\\\\type given\\.$#" + count: 1 + path: src/Bundle/ChillActivityBundle/Timeline/TimelineActivityProvider.php + + - + message: "#^Parameter \\#1 \\$callback of function array_map expects \\(callable\\(Chill\\\\BudgetBundle\\\\Repository\\\\ChargeType\\)\\: mixed\\)\\|null, Closure\\(Chill\\\\BudgetBundle\\\\Entity\\\\ChargeKind\\)\\: int\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/Service/Summary/SummaryBudget.php + + - + message: "#^Parameter \\#1 \\$callback of function array_map expects \\(callable\\(Chill\\\\BudgetBundle\\\\Repository\\\\ResourceType\\)\\: mixed\\)\\|null, Closure\\(Chill\\\\BudgetBundle\\\\Entity\\\\ResourceKind\\)\\: int\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillBudgetBundle/Service/Summary/SummaryBudget.php + + - + message: "#^Parameter \\#2 \\$byUser of class Chill\\\\CalendarBundle\\\\Messenger\\\\Message\\\\InviteUpdateMessage constructor expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/Controller/InviteApiController.php + + - + message: "#^Parameter \\#2 \\$byUser of class Chill\\\\CalendarBundle\\\\Messenger\\\\Message\\\\CalendarRemovedMessage constructor expects Chill\\\\MainBundle\\\\Entity\\\\User\\|null, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/Messenger/Doctrine/CalendarEntityListener.php + + - + message: "#^Parameter \\#3 \\$byUser of class Chill\\\\CalendarBundle\\\\Messenger\\\\Message\\\\CalendarMessage constructor expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" + count: 2 + path: src/Bundle/ChillCalendarBundle/Messenger/Doctrine/CalendarEntityListener.php + + - + message: "#^Parameter \\#2 \\$byUser of class Chill\\\\CalendarBundle\\\\Messenger\\\\Message\\\\CalendarRangeRemovedMessage constructor expects Chill\\\\MainBundle\\\\Entity\\\\User\\|null, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/Messenger/Doctrine/CalendarRangeEntityListener.php + + - + message: "#^Parameter \\#3 \\$byUser of class Chill\\\\CalendarBundle\\\\Messenger\\\\Message\\\\CalendarRangeMessage constructor expects Chill\\\\MainBundle\\\\Entity\\\\User\\|null, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" + count: 2 + path: src/Bundle/ChillCalendarBundle/Messenger/Doctrine/CalendarRangeEntityListener.php + + - + message: "#^Parameter \\#1 \\$token of method Chill\\\\CalendarBundle\\\\RemoteCalendar\\\\Connector\\\\MSGraph\\\\OnBehalfOfUserTokenStorage\\:\\:setToken\\(\\) expects TheNetworg\\\\OAuth2\\\\Client\\\\Token\\\\AccessToken, League\\\\OAuth2\\\\Client\\\\Token\\\\AccessTokenInterface given\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraph/OnBehalfOfUserTokenStorage.php + + - + message: "#^Parameter \\#2 \\$code of class Exception constructor expects int, array\\ given\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraphRemoteCalendarConnector.php + + - + message: "#^Parameter \\#4 \\$offset of method Chill\\\\CalendarBundle\\\\Repository\\\\CalendarRepository\\:\\:findBy\\(\\) expects int\\|null, array\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillCalendarBundle/Repository/CalendarRepository.php + + - + message: "#^Parameter \\#1 \\$prefix of function uniqid expects string, int\\<0, max\\> given\\.$#" + count: 1 + path: src/Bundle/ChillCustomFieldsBundle/Form/Type/ChoicesListType.php + + - + message: "#^Parameter \\#2 \\$callback of function array_filter expects callable\\(Symfony\\\\Component\\\\Serializer\\\\Mapping\\\\AttributeMetadataInterface\\)\\: mixed, Closure\\(Symfony\\\\Component\\\\Serializer\\\\Mapping\\\\AttributeMetadata\\)\\: bool given\\.$#" + count: 1 + path: src/Bundle/ChillDocGeneratorBundle/Serializer/Normalizer/DocGenObjectNormalizer.php + + - + message: "#^Parameter \\#3 \\$metadata of method Chill\\\\DocGeneratorBundle\\\\Serializer\\\\Normalizer\\\\DocGenObjectNormalizer\\:\\:normalizeNullData\\(\\) expects Symfony\\\\Component\\\\Serializer\\\\Mapping\\\\ClassMetadata, Symfony\\\\Component\\\\Serializer\\\\Mapping\\\\ClassMetadataInterface given\\.$#" + count: 1 + path: src/Bundle/ChillDocGeneratorBundle/Serializer/Normalizer/DocGenObjectNormalizer.php + + - + message: "#^Parameter \\#4 \\$attributes of method Chill\\\\DocGeneratorBundle\\\\Serializer\\\\Normalizer\\\\DocGenObjectNormalizer\\:\\:normalizeNullData\\(\\) expects array\\, array\\ given\\.$#" + count: 1 + path: src/Bundle/ChillDocGeneratorBundle/Serializer/Normalizer/DocGenObjectNormalizer.php + + - + message: "#^Parameter \\#5 \\$metadata of method Chill\\\\DocGeneratorBundle\\\\Serializer\\\\Normalizer\\\\DocGenObjectNormalizer\\:\\:normalizeObject\\(\\) expects Symfony\\\\Component\\\\Serializer\\\\Mapping\\\\ClassMetadata, Symfony\\\\Component\\\\Serializer\\\\Mapping\\\\ClassMetadataInterface given\\.$#" + count: 1 + path: src/Bundle/ChillDocGeneratorBundle/Serializer/Normalizer/DocGenObjectNormalizer.php + + - + message: "#^Parameter \\#6 \\$attributes of method Chill\\\\DocGeneratorBundle\\\\Serializer\\\\Normalizer\\\\DocGenObjectNormalizer\\:\\:normalizeObject\\(\\) expects array\\, array\\ given\\.$#" + count: 1 + path: src/Bundle/ChillDocGeneratorBundle/Serializer/Normalizer/DocGenObjectNormalizer.php + + - + message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" + count: 4 + path: src/Bundle/ChillDocStoreBundle/Controller/DocumentPersonController.php + + - + message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/EventController.php + + - + message: "#^Parameter \\#1 \\$name of method Symfony\\\\Component\\\\Form\\\\FormFactoryInterface\\:\\:createNamedBuilder\\(\\) expects string, null given\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/EventController.php + + - + message: "#^Parameter \\#1 \\$value of function count expects array\\|Countable, Chill\\\\MainBundle\\\\Entity\\\\Center given\\.$#" + count: 1 + path: src/Bundle/ChillEventBundle/Controller/EventController.php + + - + message: "#^Parameter \\#1 \\$participations of method Chill\\\\EventBundle\\\\Controller\\\\ParticipationController\\:\\:createEditFormMultiple\\(\\) expects ArrayIterator, Traversable given\\.$#" + count: 2 + path: src/Bundle/ChillEventBundle/Controller/ParticipationController.php + + - + message: "#^Parameter \\#1 \\$callback of function call_user_func expects callable\\(\\)\\: mixed, null given\\.$#" + count: 2 + path: src/Bundle/ChillEventBundle/Form/ChoiceLoader/EventChoiceLoader.php + + - + message: "#^Parameter \\#2 \\$previous of class Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\BadRequestHttpException constructor expects Throwable\\|null, int given\\.$#" + count: 3 + path: src/Bundle/ChillMainBundle/CRUD/Controller/ApiController.php + + - + message: "#^Parameter \\#3 \\$code of class Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\BadRequestHttpException constructor expects int, Symfony\\\\Component\\\\Serializer\\\\Exception\\\\NotEncodableValueException given\\.$#" + count: 2 + path: src/Bundle/ChillMainBundle/CRUD/Controller/ApiController.php + + - + message: "#^Parameter \\#3 \\$code of class Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\BadRequestHttpException constructor expects int, Symfony\\\\Component\\\\Serializer\\\\Exception\\\\UnexpectedValueException given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/CRUD/Controller/ApiController.php + + - + message: "#^Parameter \\#2 \\$role of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AuthorizationHelper\\:\\:getReachableCenters\\(\\) expects string, Symfony\\\\Component\\\\Security\\\\Core\\\\Role\\\\Role given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php + + - + message: "#^Parameter \\#3 \\$formClass of method Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\CRUDController\\:\\:createFormFor\\(\\) expects string\\|null, Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\type\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php + + - + message: "#^Parameter \\#3 \\$scope of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AuthorizationHelper\\:\\:getReachableCenters\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\Scope\\|null, Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\Scope\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php + + - + message: "#^Parameter \\#1 \\$name of method Chill\\\\MainBundle\\\\Entity\\\\Country\\:\\:setName\\(\\) expects string, array\\ given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Command/LoadCountriesCommand.php + + - + message: "#^Parameter \\#4 \\.\\.\\.\\$values of function sprintf expects bool\\|float\\|int\\|string\\|null, Chill\\\\MainBundle\\\\Entity\\\\the given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Command/LoadPostalCodesCommand.php + + - + message: "#^Parameter \\#1 \\$alias of method Chill\\\\MainBundle\\\\Export\\\\ExportManager\\:\\:getExport\\(\\) expects string, Symfony\\\\Component\\\\HttpFoundation\\\\Request given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/ExportController.php + + - + message: "#^Parameter \\#1 \\$name of method Symfony\\\\Component\\\\Form\\\\FormFactoryInterface\\:\\:createNamedBuilder\\(\\) expects string, null given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/ExportController.php + + - + message: "#^Parameter \\#3 \\$alias of method Chill\\\\MainBundle\\\\Controller\\\\ExportController\\:\\:exportFormStep\\(\\) expects string, Symfony\\\\Component\\\\HttpFoundation\\\\Request given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/ExportController.php + + - + message: "#^Parameter \\#3 \\$alias of method Chill\\\\MainBundle\\\\Controller\\\\ExportController\\:\\:formatterFormStep\\(\\) expects string, Symfony\\\\Component\\\\HttpFoundation\\\\Request given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/ExportController.php + + - + message: "#^Parameter \\#3 \\$alias of method Chill\\\\MainBundle\\\\Controller\\\\ExportController\\:\\:forwardToGenerate\\(\\) expects string, Symfony\\\\Component\\\\HttpFoundation\\\\Request given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/ExportController.php + + - + message: "#^Parameter \\#3 \\$alias of method Chill\\\\MainBundle\\\\Controller\\\\ExportController\\:\\:selectCentersStep\\(\\) expects string, Symfony\\\\Component\\\\HttpFoundation\\\\Request given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/ExportController.php + + - + message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Repository\\\\NotificationRepository\\:\\:countUnreadByUser\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/NotificationApiController.php + + - + message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Repository\\\\NotificationRepository\\:\\:findUnreadByUser\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/NotificationApiController.php + + - + message: "#^Parameter \\#1 \\$addressee of method Chill\\\\MainBundle\\\\Repository\\\\NotificationRepository\\:\\:countAllForAttendee\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/NotificationController.php + + - + message: "#^Parameter \\#1 \\$addressee of method Chill\\\\MainBundle\\\\Repository\\\\NotificationRepository\\:\\:findAllForAttendee\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/NotificationController.php + + - + message: "#^Parameter \\#1 \\$sender of method Chill\\\\MainBundle\\\\Repository\\\\NotificationRepository\\:\\:countAllForSender\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/NotificationController.php + + - + message: "#^Parameter \\#1 \\$sender of method Chill\\\\MainBundle\\\\Repository\\\\NotificationRepository\\:\\:findAllForSender\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/NotificationController.php + + - + message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Repository\\\\NotificationRepository\\:\\:countUnreadByUserWhereAddressee\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/NotificationController.php + + - + message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Repository\\\\NotificationRepository\\:\\:countUnreadByUserWhereSender\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/NotificationController.php + + - + message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" + count: 4 + path: src/Bundle/ChillMainBundle/Controller/PasswordController.php + + - + message: "#^Parameter \\#1 \\$token of class Chill\\\\MainBundle\\\\Security\\\\PasswordRecover\\\\PasswordRecoverEvent constructor expects Chill\\\\MainBundle\\\\Security\\\\PasswordRecover\\\\type\\|null, string given\\.$#" + count: 2 + path: src/Bundle/ChillMainBundle/Controller/PasswordController.php + + - + message: "#^Parameter \\#3 \\$ip of class Chill\\\\MainBundle\\\\Security\\\\PasswordRecover\\\\PasswordRecoverEvent constructor expects Chill\\\\MainBundle\\\\Security\\\\PasswordRecover\\\\type\\|null, string\\|null given\\.$#" + count: 4 + path: src/Bundle/ChillMainBundle/Controller/PasswordController.php + + - + message: "#^Parameter \\#1 \\$context of method Chill\\\\MainBundle\\\\Timeline\\\\TimelineBuilder\\:\\:countItems\\(\\) expects Chill\\\\MainBundle\\\\Timeline\\\\unknown, string given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/TimelineCenterController.php + + - + message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflow\\:\\:addSubscriberToFinal\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/WorkflowApiController.php + + - + message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflow\\:\\:addSubscriberToStep\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/WorkflowApiController.php + + - + message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflow\\:\\:isUserSubscribedToFinal\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/WorkflowApiController.php + + - + message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflow\\:\\:isUserSubscribedToStep\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/WorkflowApiController.php + + - + message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflow\\:\\:removeSubscriberToFinal\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/WorkflowApiController.php + + - + message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflow\\:\\:removeSubscriberToStep\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Controller/WorkflowApiController.php + + - + message: "#^Parameter \\#1 \\$place of method Chill\\\\MainBundle\\\\DependencyInjection\\\\Configuration\\:\\:filterWidgetByPlace\\(\\) expects string, Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\type given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/Configuration.php + + - + message: "#^Parameter \\#1 \\$place of method Chill\\\\MainBundle\\\\DependencyInjection\\\\Configuration\\:\\:getWidgetAliasesbyPlace\\(\\) expects Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\type, string given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/Configuration.php + + - + message: "#^Parameter \\#2 \\$array of function implode expects array\\|null, Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\type given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/Configuration.php + + - + message: "#^Parameter \\#2 \\$place of method Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\WidgetFactoryInterface\\:\\:createDefinition\\(\\) expects Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\type, string given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/Widget/AbstractWidgetsCompilerPass.php + + - + message: "#^Parameter \\#3 \\$order of method Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\WidgetFactoryInterface\\:\\:createDefinition\\(\\) expects Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\type, float given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/Widget/AbstractWidgetsCompilerPass.php + + - + message: "#^Parameter \\#2 \\$place of method Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\WidgetFactoryInterface\\:\\:getServiceId\\(\\) expects string, Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\type given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/Widget/Factory/AbstractWidgetFactory.php + + - + message: "#^Parameter \\#3 \\$order of method Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\WidgetFactoryInterface\\:\\:getServiceId\\(\\) expects float, Chill\\\\MainBundle\\\\DependencyInjection\\\\Widget\\\\Factory\\\\type given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/DependencyInjection/Widget/Factory/AbstractWidgetFactory.php + + - + message: "#^Parameter \\#1 \\$iterator of function iterator_to_array expects Traversable, array\\ given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/ExportManager.php + + - + message: "#^Parameter \\#2 \\$nbAggregators of method Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\CSVFormatter\\:\\:appendAggregatorForm\\(\\) expects string, int\\<0, max\\> given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/Formatter/CSVFormatter.php + + - + message: "#^Parameter \\#2 \\$array of function array_map expects array, Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\type given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/Formatter/SpreadSheetFormatter.php + + - + message: "#^Parameter \\#2 \\$nbAggregators of method Chill\\\\MainBundle\\\\Export\\\\Formatter\\\\SpreadSheetFormatter\\:\\:appendAggregatorForm\\(\\) expects string, int\\<0, max\\> given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Export/Formatter/SpreadSheetFormatter.php + + - + message: "#^Parameter \\#1 \\$callback of function call_user_func expects callable\\(\\)\\: mixed, null given\\.$#" + count: 2 + path: src/Bundle/ChillMainBundle/Form/ChoiceLoader/PostalCodeChoiceLoader.php + + - + message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Entity\\\\Embeddable\\\\PrivateCommentEmbeddable\\:\\:getCommentForUser\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/DataMapper/PrivateCommentDataMapper.php + + - + message: "#^Parameter \\#1 \\$em of class Chill\\\\MainBundle\\\\Form\\\\Type\\\\DataTransformer\\\\ObjectToIdTransformer constructor expects Doctrine\\\\ORM\\\\EntityManagerInterface, Doctrine\\\\Persistence\\\\ObjectManager given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/Type/Select2CountryType.php + + - + message: "#^Parameter \\#1 \\$em of class Chill\\\\MainBundle\\\\Form\\\\Type\\\\DataTransformer\\\\MultipleObjectsToIdTransformer constructor expects Doctrine\\\\ORM\\\\EntityManagerInterface, Doctrine\\\\Persistence\\\\ObjectManager given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/Type/Select2LanguageType.php + + - + message: "#^Parameter \\#1 \\$translatableStrings of method Chill\\\\MainBundle\\\\Templating\\\\TranslatableStringHelper\\:\\:localize\\(\\) expects array, string given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Form/Type/Select2LanguageType.php + + - + message: "#^Parameter \\#1 \\$datetime of class DateTime constructor expects string, Chill\\\\MainBundle\\\\Search\\\\type given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Search/AbstractSearch.php + + - + message: "#^Parameter \\#4 \\$paginator of method Chill\\\\MainBundle\\\\Search\\\\SearchApi\\:\\:fetchRawResult\\(\\) expects Chill\\\\MainBundle\\\\Pagination\\\\Paginator, Chill\\\\MainBundle\\\\Pagination\\\\PaginatorInterface given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Search/SearchApi.php + + - + message: "#^Parameter \\#2 \\$callback of function uasort expects callable\\(Chill\\\\MainBundle\\\\Search\\\\HasAdvancedSearchForm, Chill\\\\MainBundle\\\\Search\\\\HasAdvancedSearchForm\\)\\: int, Closure\\(Chill\\\\MainBundle\\\\Search\\\\SearchInterface, Chill\\\\MainBundle\\\\Search\\\\SearchInterface\\)\\: \\-1\\|0\\|1 given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Search/SearchProvider.php + + - + message: "#^Parameter \\#2 \\$subject of function preg_match_all expects string, Chill\\\\MainBundle\\\\Search\\\\type given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Search/SearchProvider.php + + - + message: "#^Parameter \\#1 \\$object of function get_class expects object, array\\ given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Security/Authorization/AuthorizationHelper.php + + - + message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Entity\\\\Notification\\:\\:isReadBy\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/NotificationNormalizer.php + + - + message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Entity\\\\Embeddable\\\\PrivateCommentEmbeddable\\:\\:setCommentForUser\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Serializer/Normalizer/PrivateCommentEmbeddableNormalizer.php + + - + message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Templating/Widget/WidgetRenderingTwig.php + + - + message: "#^Parameter \\#1 \\$context of method Chill\\\\MainBundle\\\\Timeline\\\\TimelineBuilder\\:\\:buildUnionQuery\\(\\) expects string, Chill\\\\MainBundle\\\\Timeline\\\\unknown given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Timeline/TimelineBuilder.php + + - + message: "#^Parameter \\#2 \\$context of method Chill\\\\MainBundle\\\\Timeline\\\\TimelineProviderInterface\\:\\:getEntityTemplate\\(\\) expects Chill\\\\MainBundle\\\\Timeline\\\\type, string given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Timeline/TimelineBuilder.php + + - + message: "#^Parameter \\#1 \\$phoneNumber of method Chill\\\\MainBundle\\\\Phonenumber\\\\PhoneNumberHelperInterface\\:\\:format\\(\\) expects libphonenumber\\\\PhoneNumber\\|null, string given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Validation/Validator/ValidPhonenumber.php + + - + message: "#^Parameter \\#1 \\$transitionBy of method Chill\\\\MainBundle\\\\Entity\\\\Workflow\\\\EntityWorkflowStep\\:\\:setTransitionBy\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User\\|null, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillMainBundle/Workflow/EventSubscriber/EntityWorkflowTransitionEventSubscriber.php + + - + message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Actions/Remove/PersonMove.php + + - + message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/AccompanyingCourseApiController.php + + - + message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/AccompanyingPeriodController.php + + - + message: "#^Parameter \\#2 \\$callback of function usort expects callable\\(mixed, mixed\\)\\: int, Closure\\(mixed, mixed\\)\\: bool given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/AccompanyingPeriodController.php + + - + message: "#^Parameter \\#1 \\$user of method Chill\\\\PersonBundle\\\\Repository\\\\AccompanyingPeriod\\\\AccompanyingPeriodWorkEvaluationRepository\\:\\:countNearMaxDateByUser\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/AccompanyingPeriodWorkEvaluationApiController.php + + - + message: "#^Parameter \\#1 \\$user of method Chill\\\\PersonBundle\\\\Repository\\\\AccompanyingPeriod\\\\AccompanyingPeriodWorkEvaluationRepository\\:\\:findNearMaxDateByUser\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/AccompanyingPeriodWorkEvaluationApiController.php + + - + message: "#^Parameter \\#1 \\$object of static method DateTimeImmutable\\:\\:createFromMutable\\(\\) expects DateTime, DateTimeInterface given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/HouseholdApiController.php + + - + message: "#^Parameter \\#2 \\$callback of function usort expects callable\\(mixed, mixed\\)\\: int, Closure\\(mixed, mixed\\)\\: bool given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/HouseholdController.php + + - + message: "#^Parameter \\#2 \\$previous of class Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\BadRequestHttpException constructor expects Throwable\\|null, int given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/HouseholdMemberController.php + + - + message: "#^Parameter \\#3 \\$code of class Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\BadRequestHttpException constructor expects int, Symfony\\\\Component\\\\Serializer\\\\Exception\\\\InvalidArgumentException\\|Symfony\\\\Component\\\\Serializer\\\\Exception\\\\UnexpectedValueException given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/HouseholdMemberController.php + + - + message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Controller/PersonController.php + + - + message: "#^Parameter \\#1 \\$form of method Chill\\\\PersonBundle\\\\Controller\\\\PersonController\\:\\:isLastPostDataChanges\\(\\) expects Symfony\\\\Component\\\\Form\\\\Form, Symfony\\\\Component\\\\Form\\\\FormInterface given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/PersonController.php + + - + message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/PersonDuplicateController.php + + - + message: "#^Parameter \\#2 \\$precision of method Chill\\\\PersonBundle\\\\Search\\\\SimilarPersonMatcher\\:\\:matchPerson\\(\\) expects float, Chill\\\\PersonBundle\\\\Repository\\\\PersonNotDuplicateRepository given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/PersonDuplicateController.php + + - + message: "#^Parameter \\#3 \\$orderBy of method Chill\\\\PersonBundle\\\\Search\\\\SimilarPersonMatcher\\:\\:matchPerson\\(\\) expects string, float given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/PersonDuplicateController.php + + - + message: "#^Parameter \\#4 \\$addYearComparison of method Chill\\\\PersonBundle\\\\Search\\\\SimilarPersonMatcher\\:\\:matchPerson\\(\\) expects bool, string given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/PersonDuplicateController.php + + - + message: "#^Parameter \\#1 \\$context of method Chill\\\\MainBundle\\\\Timeline\\\\TimelineBuilder\\:\\:countItems\\(\\) expects Chill\\\\MainBundle\\\\Timeline\\\\unknown, string given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/TimelinePersonController.php + + - + message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Controller/TimelinePersonController.php + + - + message: "#^Parameter \\#1 \\$period of method Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\\\AccompanyingPeriodLocationHistory\\:\\:setPeriod\\(\\) expects Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod, null given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php + + - + message: "#^Parameter \\#1 \\$now of method Chill\\\\PersonBundle\\\\Entity\\\\Household\\\\Household\\:\\:getCurrentMembers\\(\\) expects DateTimeImmutable\\|null, DateTimeInterface\\|null given\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Entity/Household/Household.php + + - + message: "#^Parameter \\#1 \\$now of method Chill\\\\PersonBundle\\\\Entity\\\\Household\\\\Household\\:\\:getNonCurrentMembers\\(\\) expects DateTimeImmutable\\|null, DateTimeInterface\\|null given\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Entity/Household/Household.php + + - + message: "#^Parameter \\#1 \\$key of method Doctrine\\\\Common\\\\Collections\\\\Collection\\<\\(int\\|string\\),mixed\\>\\:\\:remove\\(\\) expects \\(int\\|string\\), Chill\\\\PersonBundle\\\\Entity\\\\SocialWork\\\\SocialAction given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Entity/SocialWork/Evaluation.php + + - + message: "#^Parameter \\#1 \\$translatableStrings of method Chill\\\\MainBundle\\\\Templating\\\\TranslatableStringHelper\\:\\:localize\\(\\) expects array, string given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Export/Helper/ListPersonHelper.php + + - + message: "#^Parameter \\#1 \\$callback of function call_user_func expects callable\\(\\)\\: mixed, null given\\.$#" + count: 2 + path: src/Bundle/ChillPersonBundle/Form/ChoiceLoader/PersonChoiceLoader.php + + - + message: "#^Parameter \\#1 \\$entityName of method Doctrine\\\\ORM\\\\EntityManager\\:\\:getRepository\\(\\) expects class\\-string\\, string given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Timeline/AbstractTimelineAccompanyingPeriod.php + + - + message: "#^Parameter \\#1 \\$user of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AuthorizationHelper\\:\\:filterReachableCenters\\(\\) expects Chill\\\\MainBundle\\\\Entity\\\\User, Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\UserInterface\\|null given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Timeline/AbstractTimelineAccompanyingPeriod.php + + - + message: "#^Parameter \\#3 \\$context of method Chill\\\\PersonBundle\\\\Timeline\\\\AbstractTimelineAccompanyingPeriod\\:\\:getBasicEntityTemplate\\(\\) expects string, Chill\\\\MainBundle\\\\Timeline\\\\type given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Timeline/TimelineAccompanyingPeriodClosing.php + + - + message: "#^Parameter \\#3 \\$context of method Chill\\\\PersonBundle\\\\Timeline\\\\AbstractTimelineAccompanyingPeriod\\:\\:getBasicEntityTemplate\\(\\) expects string, Chill\\\\MainBundle\\\\Timeline\\\\type given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Timeline/TimelineAccompanyingPeriodOpening.php + + - + message: "#^Parameter \\#2 \\$role of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AuthorizationHelperInterface\\:\\:getReachableCenters\\(\\) expects string, Symfony\\\\Component\\\\Security\\\\Core\\\\Role\\\\Role given\\.$#" + count: 1 + path: src/Bundle/ChillPersonBundle/Widget/PersonListWidget.php + + - + message: "#^Parameter \\#1 \\$className of method Doctrine\\\\Persistence\\\\ObjectManager\\:\\:getRepository\\(\\) expects class\\-string\\, string given\\.$#" + count: 4 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Parameter \\#1 \\$entity of method Chill\\\\ReportBundle\\\\Controller\\\\ReportController\\:\\:createEditForm\\(\\) expects Chill\\\\ReportBundle\\\\Entity\\\\Report, ChillReportBundle\\:Report given\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" + count: 4 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Parameter \\#2 \\$role of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AuthorizationHelper\\:\\:getReachableScopes\\(\\) expects string, Symfony\\\\Component\\\\Security\\\\Core\\\\Role\\\\Role given\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Controller/ReportController.php + + - + message: "#^Parameter \\#1 \\$em of class Chill\\\\MainBundle\\\\Form\\\\Type\\\\DataTransformer\\\\ScopeTransformer constructor expects Doctrine\\\\ORM\\\\EntityManagerInterface, Doctrine\\\\Persistence\\\\ObjectManager given\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Form/ReportType.php + + - + message: "#^Parameter \\#2 \\$role of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AuthorizationHelper\\:\\:getReachableScopes\\(\\) expects string, Symfony\\\\Component\\\\Security\\\\Core\\\\Role\\\\Role given\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Form/ReportType.php + + - + message: "#^Parameter \\#2 \\$role of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AuthorizationHelper\\:\\:getReachableCenters\\(\\) expects string, Symfony\\\\Component\\\\Security\\\\Core\\\\Role\\\\Role given\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Search/ReportSearch.php + + - + message: "#^Parameter \\#2 \\$role of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AuthorizationHelper\\:\\:getReachableScopes\\(\\) expects string, Symfony\\\\Component\\\\Security\\\\Core\\\\Role\\\\Role given\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Search/ReportSearch.php + + - + message: "#^Parameter \\#1 \\$context of method Chill\\\\ReportBundle\\\\Timeline\\\\TimelineReportProvider\\:\\:checkContext\\(\\) expects string, Chill\\\\MainBundle\\\\Timeline\\\\type given\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Timeline/TimelineReportProvider.php + + - + message: "#^Parameter \\#1 \\$entity of method Chill\\\\ReportBundle\\\\Timeline\\\\TimelineReportProvider\\:\\:getFieldsToRender\\(\\) expects Chill\\\\ReportBundle\\\\Entity\\\\Report, Chill\\\\MainBundle\\\\Timeline\\\\type given\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Timeline/TimelineReportProvider.php + + - + message: "#^Parameter \\#1 \\$entityName of method Doctrine\\\\ORM\\\\EntityManager\\:\\:getRepository\\(\\) expects class\\-string\\, string given\\.$#" + count: 1 + path: src/Bundle/ChillReportBundle/Timeline/TimelineReportProvider.php + + - + message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" + count: 6 + path: src/Bundle/ChillTaskBundle/Controller/SingleTaskController.php + + - + message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Controller/TaskController.php + + - + message: "#^Parameter \\#1 \\$keys of function array_fill_keys expects array, Chill\\\\TaskBundle\\\\Entity\\\\json given\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Entity/AbstractTask.php + + - + message: "#^Parameter \\#1 \\$task of method Chill\\\\TaskBundle\\\\Entity\\\\Task\\\\SingleTaskPlaceEvent\\:\\:setTask\\(\\) expects Chill\\\\TaskBundle\\\\Entity\\\\SingleTask, Chill\\\\TaskBundle\\\\Entity\\\\AbstractTask given\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Event/Lifecycle/TaskLifecycleEvent.php + + - + message: "#^Parameter \\#1 \\$repository of class Chill\\\\PersonBundle\\\\Form\\\\DataTransformer\\\\PersonToIdTransformer constructor expects Chill\\\\PersonBundle\\\\Repository\\\\PersonRepository, Doctrine\\\\ORM\\\\EntityManagerInterface given\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Form/SingleTaskListType.php + + - + message: "#^Parameter \\#2 \\$role of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AuthorizationHelper\\:\\:getReachableCenters\\(\\) expects string, Symfony\\\\Component\\\\Security\\\\Core\\\\Role\\\\Role given\\.$#" + count: 4 + path: src/Bundle/ChillTaskBundle/Form/SingleTaskListType.php + + - + message: "#^Parameter \\#1 \\$extras of method Knp\\\\Menu\\\\MenuItem\\:\\:setExtras\\(\\) expects array\\, string given\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Menu/MenuBuilder.php + + - + message: "#^Parameter \\#2 \\$role of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AuthorizationHelper\\:\\:getReachableCenters\\(\\) expects string, Symfony\\\\Component\\\\Security\\\\Core\\\\Role\\\\Role given\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Repository/SingleTaskRepository.php + + - + message: "#^Parameter \\#1 \\$event of method Symfony\\\\Contracts\\\\EventDispatcher\\\\EventDispatcherInterface\\:\\:dispatch\\(\\) expects object, string given\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Security/Authorization/TaskVoter.php + + - + message: "#^Parameter \\#2 \\$role of method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AuthorizationHelper\\:\\:getReachableCenters\\(\\) expects string, Symfony\\\\Component\\\\Security\\\\Core\\\\Role\\\\Role given\\.$#" + count: 1 + path: src/Bundle/ChillTaskBundle/Timeline/TaskLifeCycleEventTimelineProvider.php + + - + message: "#^Parameter \\#1 \\$storedObject of method Chill\\\\WopiBundle\\\\Service\\\\Wopi\\\\ChillDocumentManager\\:\\:getContent\\(\\) expects Chill\\\\DocStoreBundle\\\\Entity\\\\StoredObject, ChampsLibres\\\\WopiLib\\\\Contract\\\\Entity\\\\Document given\\.$#" + count: 3 + path: src/Bundle/ChillWopiBundle/src/Service/Wopi/ChillDocumentManager.php + + - + message: "#^Parameter \\#1 \\$storedObject of method Chill\\\\WopiBundle\\\\Service\\\\Wopi\\\\ChillDocumentManager\\:\\:setContent\\(\\) expects Chill\\\\DocStoreBundle\\\\Entity\\\\StoredObject, ChampsLibres\\\\WopiLib\\\\Contract\\\\Entity\\\\Document given\\.$#" + count: 1 + path: src/Bundle/ChillWopiBundle/src/Service/Wopi/ChillDocumentManager.php + + - + message: "#^Parameter \\#1 \\$type of method Chill\\\\DocStoreBundle\\\\Entity\\\\StoredObject\\:\\:setType\\(\\) expects string\\|null, false given\\.$#" + count: 1 + path: src/Bundle/ChillWopiBundle/src/Service/Wopi/ChillDocumentManager.php diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 20970a799..a89386f29 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -1,10 +1,5 @@ parameters: ignoreErrors: - - - message: "#^Variable property access on \\$this\\(Chill\\\\ActivityBundle\\\\Entity\\\\ActivityType\\)\\.$#" - count: 3 - path: src/Bundle/ChillActivityBundle/Entity/ActivityType.php - - message: "#^Foreach overwrites \\$key with its key variable\\.$#" count: 1 @@ -20,11 +15,6 @@ parameters: count: 1 path: src/Bundle/ChillEventBundle/Form/ChoiceLoader/EventChoiceLoader.php - - - message: "#^Variable method call on object\\.$#" - count: 2 - path: src/Bundle/ChillMainBundle/CRUD/Controller/ApiController.php - - message: "#^Cannot unset offset '_token' on array\\{formatter\\: mixed, export\\: mixed, centers\\: mixed, alias\\: string\\}\\.$#" count: 1 @@ -50,46 +40,11 @@ parameters: count: 1 path: src/Bundle/ChillMainBundle/Form/ChoiceLoader/PostalCodeChoiceLoader.php - - - message: "#^Variable \\$message on left side of \\?\\? always exists and is not nullable\\.$#" - count: 1 - path: src/Bundle/ChillMainBundle/Templating/ChillTwigHelper.php - - - - message: "#^Variable \\$sqls on left side of \\?\\? always exists and is not nullable\\.$#" - count: 1 - path: src/Bundle/ChillPersonBundle/Actions/Remove/PersonMove.php - - - - message: "#^Class Chill\\\\PersonBundle\\\\Entity\\\\Person constructor invoked with 1 parameter, 0 required\\.$#" - count: 1 - path: src/Bundle/ChillPersonBundle/Command/ImportPeopleFromCSVCommand.php - - - - message: "#^Variable \\$street1Value might not be defined\\.$#" - count: 1 - path: src/Bundle/ChillPersonBundle/Command/ImportPeopleFromCSVCommand.php - - - - message: "#^Variable method call on mixed\\.$#" - count: 1 - path: src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadPeople.php - - message: "#^Foreach overwrites \\$value with its value variable\\.$#" count: 1 path: src/Bundle/ChillPersonBundle/Form/ChoiceLoader/PersonChoiceLoader.php - - - message: "#^Foreach overwrites \\$action with its value variable\\.$#" - count: 1 - path: src/Bundle/ChillPersonBundle/Repository/SocialWork/GoalRepository.php - - - - message: "#^Foreach overwrites \\$action with its value variable\\.$#" - count: 1 - path: src/Bundle/ChillPersonBundle/Repository/SocialWork/ResultRepository.php - - message: "#^Foreach overwrites \\$value with its value variable\\.$#" count: 1 diff --git a/phpstan-critical.neon b/phpstan-critical.neon index bfbb2dc7c..158c7384b 100644 --- a/phpstan-critical.neon +++ b/phpstan-critical.neon @@ -1,76 +1,6 @@ parameters: ignoreErrors: - - - message: "#^Implicit array creation is not allowed \\- variable \\$centers might not exist\\.$#" - count: 1 - path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php - - - - message: "#^Access to an undefined property Chill\\\\PersonBundle\\\\Entity\\\\AccompanyingPeriod\\:\\:\\$work\\.$#" - count: 1 - path: src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod.php - - - - message: "#^Undefined variable\\: \\$person$#" - count: 1 - path: src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepository.php - - - - message: "#^Variable variables are not allowed\\.$#" - count: 4 - path: src/Bundle/ChillPersonBundle/Search/PersonSearch.php - - - - message: "#^Function Chill\\\\PersonBundle\\\\Serializer\\\\Normalizer\\\\·\\\\is_array not found\\.$#" - count: 1 - path: src/Bundle/ChillPersonBundle/Serializer/Normalizer/MembersEditorNormalizer.php - - - - message: "#^Undefined variable\\: \\$choiceSlug$#" - count: 1 - path: src/Bundle/ChillReportBundle/Export/Export/ReportList.php - - - - message: "#^Undefined variable\\: \\$type$#" - count: 1 - path: src/Bundle/ChillTaskBundle/Controller/TaskController.php - - - - message: "#^Call to an undefined method Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\AbstractCRUDController\\:\\:getRoleFor\\(\\)\\.$#" - count: 1 - path: src/Bundle/ChillMainBundle/CRUD/Controller/AbstractCRUDController.php - - message: "#^Call to an undefined method Chill\\\\MainBundle\\\\Controller\\\\UserController\\:\\:createEditForm\\(\\)\\.$#" count: 1 path: src/Bundle/ChillMainBundle/Controller/UserController.php - - - - message: "#^Undefined variable\\: \\$current$#" - count: 1 - path: src/Bundle/ChillMainBundle/Pagination/PageGenerator.php - - - - message: "#^Call to an undefined method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AbstractChillVoter\\:\\:getSupportedAttributes\\(\\)\\.$#" - count: 1 - path: src/Bundle/ChillMainBundle/Security/Authorization/AbstractChillVoter.php - - - - message: "#^Call to an undefined method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AbstractChillVoter\\:\\:getSupportedClasses\\(\\)\\.$#" - count: 1 - path: src/Bundle/ChillMainBundle/Security/Authorization/AbstractChillVoter.php - - - - message: "#^Call to an undefined method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AbstractChillVoter\\:\\:isGranted\\(\\)\\.$#" - count: 1 - path: src/Bundle/ChillMainBundle/Security/Authorization/AbstractChillVoter.php - - - - message: "#^Access to an undefined property Chill\\\\PersonBundle\\\\Controller\\\\PersonController\\:\\:\\$security\\.$#" - count: 3 - path: src/Bundle/ChillPersonBundle/Controller/PersonController.php - - - - message: "#^Call to an undefined method Chill\\\\ThirdPartyBundle\\\\Form\\\\Type\\\\PickThirdPartyTypeCategoryType\\:\\:transform\\(\\)\\.$#" - count: 1 - path: src/Bundle/ChillThirdPartyBundle/Form/Type/PickThirdPartyTypeCategoryType.php diff --git a/phpstan-deprecations.neon b/phpstan-deprecations.neon index aa8506411..c83feeb59 100644 --- a/phpstan-deprecations.neon +++ b/phpstan-deprecations.neon @@ -32,14 +32,6 @@ parameters: path: src/Bundle/ChillActivityBundle/Form/ActivityType.php - - - message: """ - #^Instantiation of deprecated class Symfony\\\\Component\\\\Security\\\\Core\\\\Role\\\\Role\\: - since Symfony 4\\.3, to be removed in 5\\.0\\. Use strings as roles instead\\.$# - """ - count: 1 - path: src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepository.php - - message: """ #^Parameter \\$centerResolverDispatcher of method Chill\\\\ActivityBundle\\\\Repository\\\\ActivityACLAwareRepository\\:\\:__construct\\(\\) has typehint with deprecated interface Chill\\\\MainBundle\\\\Security\\\\Resolver\\\\CenterResolverDispatcherInterface\\: @@ -199,14 +191,6 @@ parameters: count: 2 path: src/Bundle/ChillMainBundle/DataFixtures/ORM/LoadLanguages.php - - - message: """ - #^Class Chill\\\\MainBundle\\\\Entity\\\\User implements deprecated interface Symfony\\\\Component\\\\Security\\\\Core\\\\User\\\\AdvancedUserInterface\\: - since Symfony 4\\.1$# - """ - count: 1 - path: src/Bundle/ChillMainBundle/Entity/User.php - - message: """ #^Return type of method Chill\\\\MainBundle\\\\Entity\\\\User\\:\\:getRoles\\(\\) has typehint with deprecated class Symfony\\\\Component\\\\Security\\\\Core\\\\Role\\\\Role\\: @@ -329,22 +313,6 @@ parameters: count: 1 path: src/Bundle/ChillPersonBundle/Actions/ActionEvent.php - - - message: """ - #^Call to deprecated method getCurrentAccompanyingPeriod\\(\\) of class Chill\\\\PersonBundle\\\\Entity\\\\Person\\: - since 1\\.1 use `getOpenedAccompanyingPeriod instead$# - """ - count: 1 - path: src/Bundle/ChillPersonBundle/Command/ImportPeopleFromCSVCommand.php - - - - message: """ - #^Instantiation of deprecated class Symfony\\\\Component\\\\EventDispatcher\\\\Event\\: - since Symfony 4\\.3, use "Symfony\\\\Contracts\\\\EventDispatcher\\\\Event" instead$# - """ - count: 1 - path: src/Bundle/ChillPersonBundle/Command/ImportPeopleFromCSVCommand.php - - message: """ #^Class Chill\\\\PersonBundle\\\\Controller\\\\AccompanyingCourseController extends deprecated class Symfony\\\\Bundle\\\\FrameworkBundle\\\\Controller\\\\Controller\\: @@ -541,11 +509,3 @@ parameters: count: 3 path: src/Bundle/ChillTaskBundle/Timeline/TaskLifeCycleEventTimelineProvider.php - - - message: """ - #^Instantiation of deprecated class Symfony\\\\Component\\\\Security\\\\Core\\\\Role\\\\Role\\: - since Symfony 4\\.3, to be removed in 5\\.0\\. Use strings as roles instead\\.$# - """ - count: 1 - path: src/Bundle/ChillThirdPartyBundle/Search/ThirdPartySearch.php - diff --git a/phpstan-types.neon b/phpstan-types.neon index b11cbd153..3368c94d2 100644 --- a/phpstan-types.neon +++ b/phpstan-types.neon @@ -100,11 +100,6 @@ parameters: count: 1 path: src/Bundle/ChillDocStoreBundle/Entity/DocumentCategory.php - - - message: "#^Method Chill\\\\EventBundle\\\\Entity\\\\Participation\\:\\:offsetGet\\(\\) should return mixed but return statement is missing\\.$#" - count: 1 - path: src/Bundle/ChillEventBundle/Entity/Participation.php - - message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" count: 1 @@ -315,11 +310,6 @@ parameters: count: 1 path: src/Bundle/ChillPersonBundle/Command/ChillPersonMoveCommand.php - - - message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" - count: 6 - path: src/Bundle/ChillPersonBundle/Command/ImportPeopleFromCSVCommand.php - - message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" count: 1 @@ -345,11 +335,6 @@ parameters: count: 1 path: src/Bundle/ChillPersonBundle/Search/PersonSearch.php - - - message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" - count: 2 - path: src/Bundle/ChillPersonBundle/Templating/Entity/ClosingMotiveRender.php - - message: "#^Method Chill\\\\ReportBundle\\\\DataFixtures\\\\ORM\\\\LoadReports\\:\\:getRandomChoice\\(\\) should return array\\\\|string but return statement is missing\\.$#" count: 1 @@ -395,16 +380,6 @@ parameters: count: 1 path: src/Bundle/ChillTaskBundle/Timeline/TaskLifeCycleEventTimelineProvider.php - - - message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" - count: 1 - path: src/Bundle/ChillThirdPartyBundle/Form/ChoiceLoader/ThirdPartyChoiceLoader.php - - - - message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#" - count: 1 - path: src/Bundle/ChillThirdPartyBundle/Repository/ThirdPartyRepository.php - - message: "#^Method Chill\\\\ThirdPartyBundle\\\\Search\\\\ThirdPartySearch\\:\\:renderResult\\(\\) should return string but return statement is missing\\.$#" count: 1 diff --git a/phpstan.neon.dist b/phpstan.neon.dist index 3322f9539..56b7c2228 100644 --- a/phpstan.neon.dist +++ b/phpstan.neon.dist @@ -1,7 +1,9 @@ parameters: - level: 1 + level: 5 paths: - src/ + tmpDir: .cache/ + reportUnmatchedIgnoredErrors: false excludePaths: - .php_cs* - docs/ @@ -24,4 +26,8 @@ includes: - phpstan-critical.neon - phpstan-deprecations.neon - phpstan-types.neon + - phpstan-baseline-level-2.neon + - phpstan-baseline-level-3.neon + - phpstan-baseline-level-4.neon + - phpstan-baseline-level-5.neon diff --git a/psalm.xml b/psalm.xml index 40e5d78e8..77193f05b 100644 --- a/psalm.xml +++ b/psalm.xml @@ -9,9 +9,10 @@ cacheDirectory="./.psalm" > - + - + + @@ -20,9 +21,27 @@ - + + + + + + + diff --git a/rector.php b/rector.php new file mode 100644 index 000000000..2c5b08bec --- /dev/null +++ b/rector.php @@ -0,0 +1,25 @@ +paths([ + __DIR__ . '/docs', + __DIR__ . '/src', + ]); + + $rectorConfig->cacheClass(\Rector\Caching\ValueObject\Storage\FileCacheStorage::class); + $rectorConfig->cacheDirectory(__DIR__.'/.cache/rector'); + + // register a single rule + $rectorConfig->rule(InlineConstructorDefaultToPropertyRector::class); + + // define sets of rules + // $rectorConfig->sets([ + // LevelSetList::UP_TO_PHP_74 + // ]); +}; diff --git a/src/Bundle/ChillActivityBundle/Controller/ActivityController.php b/src/Bundle/ChillActivityBundle/Controller/ActivityController.php index b7d5fcbd2..798ae77b4 100644 --- a/src/Bundle/ChillActivityBundle/Controller/ActivityController.php +++ b/src/Bundle/ChillActivityBundle/Controller/ActivityController.php @@ -651,8 +651,8 @@ final class ActivityController extends AbstractController throw $this->createNotFoundException('Accompanying Period not found'); } - // TODO Add permission - // $this->denyAccessUnlessGranted('CHILL_PERSON_SEE', $person); + // TODO Add permission + // $this->denyAccessUnlessGranted('CHILL_PERSON_SEE', $person); } else { throw $this->createNotFoundException('Person or Accompanying Period not found'); } diff --git a/src/Bundle/ChillActivityBundle/Entity/Activity.php b/src/Bundle/ChillActivityBundle/Entity/Activity.php index 8fcae3e0b..9adfa057f 100644 --- a/src/Bundle/ChillActivityBundle/Entity/Activity.php +++ b/src/Bundle/ChillActivityBundle/Entity/Activity.php @@ -195,7 +195,7 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac * @ORM\ManyToOne(targetEntity="Chill\MainBundle\Entity\User") * @Groups({"docgen:read"}) */ - private User $user; + private ?User $user; /** * @ORM\ManyToMany(targetEntity="Chill\MainBundle\Entity\User") @@ -257,12 +257,10 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac /** * Add a social issue. * - * Note: the social issue consistency (the fact that only yougest social issues + * Note: the social issue consistency (the fact that only youngest social issues * are kept) is processed by an entity listener: * * @see{\Chill\PersonBundle\AccompanyingPeriod\SocialIssueConsistency\AccompanyingPeriodSocialIssueConsistencyEntityListener} - * - * @return $this */ public function addSocialIssue(SocialIssue $socialIssue): self { @@ -270,6 +268,10 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac $this->socialIssues[] = $socialIssue; } + if ($this->getAccompanyingPeriod() !== null) { + $this->getAccompanyingPeriod()->addSocialIssue($socialIssue); + } + return $this; } @@ -492,7 +494,7 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac return $this->activityType; } - public function getUser(): User + public function getUser(): ?User { return $this->user; } @@ -550,6 +552,10 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac { $this->accompanyingPeriod = $accompanyingPeriod; + foreach ($this->getSocialIssues() as $issue) { + $this->accompanyingPeriod->addSocialIssue($issue); + } + return $this; } @@ -675,14 +681,14 @@ class Activity implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterfac return $this; } - public function setUser(UserInterface $user): self + public function setUser(?User $user): self { $this->user = $user; return $this; } - public function setUsers(?Collection $users): self + public function setUsers(Collection $users): self { $this->users = $users; diff --git a/src/Bundle/ChillActivityBundle/Entity/ActivityType.php b/src/Bundle/ChillActivityBundle/Entity/ActivityType.php index 1f44a1af0..a6e0fc694 100644 --- a/src/Bundle/ChillActivityBundle/Entity/ActivityType.php +++ b/src/Bundle/ChillActivityBundle/Entity/ActivityType.php @@ -380,6 +380,7 @@ class ActivityType throw new InvalidArgumentException('Field "' . $field . '" not found'); } + /** @phpstan-ignore-next-line */ return $this->{$property}; } @@ -538,6 +539,7 @@ class ActivityType throw new InvalidArgumentException('Field "' . $field . '" not found'); } + /** @phpstan-ignore-next-line */ return self::FIELD_REQUIRED === $this->{$property}; } @@ -549,6 +551,7 @@ class ActivityType throw new InvalidArgumentException('Field "' . $field . '" not found'); } + /** @phpstan-ignore-next-line */ return self::FIELD_INVISIBLE !== $this->{$property}; } diff --git a/src/Bundle/ChillActivityBundle/Export/Aggregator/ACPAggregators/DateAggregator.php b/src/Bundle/ChillActivityBundle/Export/Aggregator/ACPAggregators/DateAggregator.php index dbbeb2715..b4b23dc0b 100644 --- a/src/Bundle/ChillActivityBundle/Export/Aggregator/ACPAggregators/DateAggregator.php +++ b/src/Bundle/ChillActivityBundle/Export/Aggregator/ACPAggregators/DateAggregator.php @@ -58,7 +58,8 @@ class DateAggregator implements AggregatorInterface break; case 'year': - $fmt = 'YYYY'; $order = 'DESC'; + $fmt = 'YYYY'; + $order = 'DESC'; break; // order DESC does not works ! diff --git a/src/Bundle/ChillActivityBundle/Export/Export/LinkedToACP/ListActivity.php b/src/Bundle/ChillActivityBundle/Export/Export/LinkedToACP/ListActivity.php index 77444e414..6d25b4e22 100644 --- a/src/Bundle/ChillActivityBundle/Export/Export/LinkedToACP/ListActivity.php +++ b/src/Bundle/ChillActivityBundle/Export/Export/LinkedToACP/ListActivity.php @@ -73,7 +73,7 @@ class ListActivity implements ListInterface, GroupedExportInterface }; case 'scopesNames': - return $this->translatableStringExportLabelHelper->getLabelMulti($key, $values, ListActivityHelper::MSG_KEY . 'course circles'); + return $this->translatableStringExportLabelHelper->getLabelMulti($key, $values, ListActivityHelper::MSG_KEY . 'course circles'); default: return $this->helper->getLabels($key, $values, $data); diff --git a/src/Bundle/ChillActivityBundle/Export/Filter/ACPFilters/LocationFilter.php b/src/Bundle/ChillActivityBundle/Export/Filter/ACPFilters/LocationFilter.php index ed591e957..3d69d1633 100644 --- a/src/Bundle/ChillActivityBundle/Export/Filter/ACPFilters/LocationFilter.php +++ b/src/Bundle/ChillActivityBundle/Export/Filter/ACPFilters/LocationFilter.php @@ -20,13 +20,6 @@ use Symfony\Component\Form\FormBuilderInterface; class LocationFilter implements FilterInterface { - private TranslatableStringHelper $translatableStringHelper; - - public function __construct(TranslatableStringHelper $translatableStringHelper) - { - $this->translatableStringHelper = $translatableStringHelper; - } - public function addRole(): ?string { return null; @@ -50,7 +43,7 @@ class LocationFilter implements FilterInterface { $builder->add('accepted_location', PickUserLocationType::class, [ 'multiple' => true, - 'label' => 'pick location' + 'label' => 'pick location', ]); } diff --git a/src/Bundle/ChillActivityBundle/Form/ActivityType.php b/src/Bundle/ChillActivityBundle/Form/ActivityType.php index 6d198c5fa..5dfd756f9 100644 --- a/src/Bundle/ChillActivityBundle/Form/ActivityType.php +++ b/src/Bundle/ChillActivityBundle/Form/ActivityType.php @@ -225,6 +225,7 @@ class ActivityType extends AbstractType $builder->add('user', PickUserDynamicType::class, [ 'label' => $activityType->getLabel('user'), 'required' => $activityType->isRequired('user'), + 'multiple' => false, ]); } diff --git a/src/Bundle/ChillActivityBundle/Menu/AccompanyingCourseMenuBuilder.php b/src/Bundle/ChillActivityBundle/Menu/AccompanyingCourseMenuBuilder.php index a177a717c..9884450ec 100644 --- a/src/Bundle/ChillActivityBundle/Menu/AccompanyingCourseMenuBuilder.php +++ b/src/Bundle/ChillActivityBundle/Menu/AccompanyingCourseMenuBuilder.php @@ -18,6 +18,9 @@ use Knp\Menu\MenuItem; use Symfony\Component\Security\Core\Security; use Symfony\Contracts\Translation\TranslatorInterface; +/** + * @implements LocalMenuBuilderInterface + */ class AccompanyingCourseMenuBuilder implements LocalMenuBuilderInterface { protected Security $security; diff --git a/src/Bundle/ChillActivityBundle/Menu/AdminMenuBuilder.php b/src/Bundle/ChillActivityBundle/Menu/AdminMenuBuilder.php index 71a9e3c2a..4b2d348d7 100644 --- a/src/Bundle/ChillActivityBundle/Menu/AdminMenuBuilder.php +++ b/src/Bundle/ChillActivityBundle/Menu/AdminMenuBuilder.php @@ -15,6 +15,9 @@ use Chill\MainBundle\Routing\LocalMenuBuilderInterface; use Knp\Menu\MenuItem; use Symfony\Component\Security\Core\Security; +/** + * @implements LocalMenuBuilderInterface + */ final class AdminMenuBuilder implements LocalMenuBuilderInterface { private Security $security; diff --git a/src/Bundle/ChillActivityBundle/Menu/PersonMenuBuilder.php b/src/Bundle/ChillActivityBundle/Menu/PersonMenuBuilder.php index 89dff9b2b..03a1b09ab 100644 --- a/src/Bundle/ChillActivityBundle/Menu/PersonMenuBuilder.php +++ b/src/Bundle/ChillActivityBundle/Menu/PersonMenuBuilder.php @@ -13,11 +13,15 @@ namespace Chill\ActivityBundle\Menu; use Chill\ActivityBundle\Security\Authorization\ActivityVoter; use Chill\MainBundle\Routing\LocalMenuBuilderInterface; +use Chill\PersonBundle\Entity\Person; use Knp\Menu\MenuItem; use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface; use Symfony\Contracts\Translation\TranslatorInterface; -class PersonMenuBuilder implements LocalMenuBuilderInterface +/** + * @implements LocalMenuBuilderInterface + */ +final class PersonMenuBuilder implements LocalMenuBuilderInterface { /** * @var AuthorizationCheckerInterface @@ -44,7 +48,7 @@ class PersonMenuBuilder implements LocalMenuBuilderInterface if ($this->authorizationChecker->isGranted(ActivityVoter::SEE, $person)) { $menu->addChild( - $this->translator->trans('Activity list'), + $this->translator->trans('Activities'), [ 'route' => 'chill_activity_activity_list', 'routeParameters' => ['person_id' => $person->getId()], diff --git a/src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepository.php b/src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepository.php index fa36c8d07..185e008eb 100644 --- a/src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepository.php +++ b/src/Bundle/ChillActivityBundle/Repository/ActivityACLAwareRepository.php @@ -225,10 +225,9 @@ final class ActivityACLAwareRepository implements ActivityACLAwareRepositoryInte $personToCenter = $metadataPerson->getAssociationMapping('center')['joinColumns'][0]['name']; // acls: - $role = new Role(ActivityVoter::SEE); $reachableCenters = $this->authorizationHelper->getReachableCenters( $this->tokenStorage->getToken()->getUser(), - $role + ActivityVoter::SEE ); if (count($reachableCenters) === 0) { @@ -239,7 +238,7 @@ final class ActivityACLAwareRepository implements ActivityACLAwareRepositoryInte if ('person' === $context) { // we start with activities having the person_id linked to person $where .= sprintf('%s = ? AND ', $activityToPerson); - $parameters[] = $person->getId(); + $parameters[] = $args['context']->getId(); } // we add acl (reachable center and scopes) @@ -252,7 +251,7 @@ final class ActivityACLAwareRepository implements ActivityACLAwareRepositoryInte continue; } // we get all the reachable scopes for this center - $reachableScopes = $this->authorizationHelper->getReachableScopes($this->tokenStorage->getToken()->getUser(), $role, $center); + $reachableScopes = $this->authorizationHelper->getReachableScopes($this->tokenStorage->getToken()->getUser(), ActivityVoter::SEE, $center); // we get the ids for those scopes $reachablesScopesId = array_map( static function (Scope $scope) { diff --git a/src/Bundle/ChillActivityBundle/Resources/public/chill/chillactivity.scss b/src/Bundle/ChillActivityBundle/Resources/public/chill/chillactivity.scss index 5c1c83d06..d70bd28c3 100644 --- a/src/Bundle/ChillActivityBundle/Resources/public/chill/chillactivity.scss +++ b/src/Bundle/ChillActivityBundle/Resources/public/chill/chillactivity.scss @@ -88,3 +88,11 @@ div.flex-bloc.concerned-groups { font-size: 120%; } } + +/// DOCUMENT LIST IN ACTIVITY ITEM +li.document-list-item { + display: flex; + width: 100%; + justify-content: space-between; + margin-bottom: 0.3rem; +} diff --git a/src/Bundle/ChillActivityBundle/Resources/views/Activity/_list_item.html.twig b/src/Bundle/ChillActivityBundle/Resources/views/Activity/_list_item.html.twig index 3a4749f3c..8d1aba2b3 100644 --- a/src/Bundle/ChillActivityBundle/Resources/views/Activity/_list_item.html.twig +++ b/src/Bundle/ChillActivityBundle/Resources/views/Activity/_list_item.html.twig @@ -63,12 +63,12 @@ {% endif %} - {% if activity.user and t.userVisible %} + {% if activity.user is not null and t.userVisible %}

{{ 'Referrer'|trans }}

- {{ activity.user|chill_entity_render_box }} + {{ activity.user|chill_entity_render_box }}

@@ -137,19 +137,42 @@ {{ activity.comment|chill_entity_render_box({ 'disable_markdown': false, 'limit_lines': 3, - 'metadata': false + 'metadata': false, }) }} {% endif %} - {# Only if ACL SEE_DETAILS AND/OR only on template SHOW ?? - durationTime - travelTime - comment - documents - attendee - #} + {% if is_granted('CHILL_ACTIVITY_SEE_DETAILS', activity) and activity.privateComment.hasCommentForUser(app.user) %} +
+
+

{{ 'Private comment'|trans }}

+
+
+
+
+ {{ activity.privateComment.comments[app.user.id]|chill_markdown_to_html }} +
+
+
+
+ {% endif %} + + {% if is_granted('CHILL_ACTIVITY_SEE_DETAILS', activity) and activity.documents|length > 0 %} +
+
+

{{ 'Documents'|trans }}

+
+
+
    + {% for d in activity.documents %} +
  • {{ d.title|chill_print_or_message('document.Any title') }} {{ d|chill_document_button_group(d.title, is_granted('CHILL_ACTIVITY_UPDATE', activity), {small: true}) }}
  • + {% endfor %} +
+
+
+ {% endif %} + diff --git a/src/Bundle/ChillActivityBundle/Resources/views/Activity/concernedGroups.html.twig b/src/Bundle/ChillActivityBundle/Resources/views/Activity/concernedGroups.html.twig index 96cfef39b..48eb839d7 100644 --- a/src/Bundle/ChillActivityBundle/Resources/views/Activity/concernedGroups.html.twig +++ b/src/Bundle/ChillActivityBundle/Resources/views/Activity/concernedGroups.html.twig @@ -5,7 +5,7 @@ Maybe should we think about abstracting this file a bit more ? Moving it to PersonBundle ? #} -{% if context == 'calendar_accompanyingCourse' %} +{% if context == 'calendar_accompanyingCourse' or context == 'calendar_person' %} {% import "@ChillCalendar/_invite.html.twig" as invite %} {% endif %} diff --git a/src/Bundle/ChillActivityBundle/Resources/views/Activity/listAccompanyingCourse.html.twig b/src/Bundle/ChillActivityBundle/Resources/views/Activity/listAccompanyingCourse.html.twig index a666f183d..bdf55d86f 100644 --- a/src/Bundle/ChillActivityBundle/Resources/views/Activity/listAccompanyingCourse.html.twig +++ b/src/Bundle/ChillActivityBundle/Resources/views/Activity/listAccompanyingCourse.html.twig @@ -8,11 +8,13 @@ {% block js %} {{ parent() }} {{ encore_entry_script_tags('mod_notification_toggle_read_status') }} + {{ encore_entry_script_tags('mod_document_action_buttons_group') }} {% endblock %} {% block css %} {{ parent() }} {{ encore_entry_link_tags('mod_notification_toggle_read_status') }} + {{ encore_entry_link_tags('mod_document_action_buttons_group') }} {% endblock %} {% block content %} diff --git a/src/Bundle/ChillActivityBundle/Resources/views/Activity/listPerson.html.twig b/src/Bundle/ChillActivityBundle/Resources/views/Activity/listPerson.html.twig index 0514284a2..0c1afdac9 100644 --- a/src/Bundle/ChillActivityBundle/Resources/views/Activity/listPerson.html.twig +++ b/src/Bundle/ChillActivityBundle/Resources/views/Activity/listPerson.html.twig @@ -23,11 +23,13 @@ {% block js %} {{ parent() }} {{ encore_entry_script_tags('mod_notification_toggle_read_status') }} + {{ encore_entry_script_tags('mod_document_action_buttons_group') }} {% endblock %} {% block css %} {{ parent() }} {{ encore_entry_link_tags('mod_notification_toggle_read_status') }} + {{ encore_entry_link_tags('mod_document_action_buttons_group') }} {% endblock %} {% block content %} diff --git a/src/Bundle/ChillActivityBundle/Resources/views/Activity/list_recent.html.twig b/src/Bundle/ChillActivityBundle/Resources/views/Activity/list_recent.html.twig index e4184da36..aa0bbea0c 100644 --- a/src/Bundle/ChillActivityBundle/Resources/views/Activity/list_recent.html.twig +++ b/src/Bundle/ChillActivityBundle/Resources/views/Activity/list_recent.html.twig @@ -41,7 +41,7 @@ {% if activity.user and t.userVisible %}
  • {{ 'Referrer'|trans ~ ': ' }} - {{ activity.user|chill_entity_render_box}} + {{ activity.user|chill_entity_render_box }}
  • {% endif %} diff --git a/src/Bundle/ChillActivityBundle/Resources/views/Activity/show.html.twig b/src/Bundle/ChillActivityBundle/Resources/views/Activity/show.html.twig index 1ec0ab274..fca6a7658 100644 --- a/src/Bundle/ChillActivityBundle/Resources/views/Activity/show.html.twig +++ b/src/Bundle/ChillActivityBundle/Resources/views/Activity/show.html.twig @@ -34,8 +34,12 @@
    -
    {{ 'Referrer'|trans|capitalize }}
    -
    {{ entity.user|chill_entity_render_box }}
    + {%- if entity.user is not null %} +
    {{ 'Referrer'|trans|capitalize }}
    +
    + {{ entity.user|chill_entity_render_box }} +
    + {% endif %} {%- if entity.scope -%}
    {{ 'Scope'|trans }}
    @@ -168,7 +172,7 @@ {% if entity.documents|length > 0 %}
      {% for d in entity.documents %} -
    • {{ d.title }} {{ d|chill_document_button_group() }}
    • +
    • {{ d.title|chill_print_or_message('document.Any title') }} {{ d|chill_document_button_group(d.title, is_granted('CHILL_ACTIVITY_UPDATE', entity), {small: true}) }}
    • {% endfor %}
    {% else %} diff --git a/src/Bundle/ChillActivityBundle/Service/DocGenerator/ActivityContext.php b/src/Bundle/ChillActivityBundle/Service/DocGenerator/ActivityContext.php index ac832b34b..ad570a8a4 100644 --- a/src/Bundle/ChillActivityBundle/Service/DocGenerator/ActivityContext.php +++ b/src/Bundle/ChillActivityBundle/Service/DocGenerator/ActivityContext.php @@ -32,6 +32,9 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Serializer\Normalizer\NormalizerInterface; use Symfony\Contracts\Translation\TranslatorInterface; +/** + * @implements DocGeneratorContextWithPublicFormInterface + */ class ActivityContext implements DocGeneratorContextWithAdminFormInterface, DocGeneratorContextWithPublicFormInterface @@ -144,6 +147,32 @@ class ActivityContext implements } } + public function contextGenerationDataDenormalize(DocGeneratorTemplate $template, $entity, array $data): array + { + $denormalized = []; + + foreach (['mainPerson', 'person1', 'person2'] as $k) { + if (null !== ($id = ($data[$k] ?? null))) { + $denormalized[$k] = $this->personRepository->find($id); + } else { + $denormalized[$k] = null; + } + } + + return $denormalized; + } + + public function contextGenerationDataNormalize(DocGeneratorTemplate $template, $entity, array $data): array + { + $normalized = []; + + foreach (['mainPerson', 'person1', 'person2'] as $k) { + $normalized[$k] = null === $data[$k] ? null : $data[$k]->getId(); + } + + return $normalized; + } + public function getData(DocGeneratorTemplate $template, $entity, array $contextGenerationData = []): array { if (!$entity instanceof Activity) { @@ -152,7 +181,7 @@ class ActivityContext implements $options = $template->getOptions(); $data = []; - $data = array_merge($data, $this->baseContextData->getData()); + $data = array_merge($data, $this->baseContextData->getData($contextGenerationData['creator'] ?? null)); $data['activity'] = $this->normalizer->normalize($entity, 'docgen', ['docgen:expects' => Activity::class, 'groups' => 'docgen:read']); $data['course'] = $this->normalizer->normalize($entity->getAccompanyingPeriod(), 'docgen', ['docgen:expects' => AccompanyingPeriod::class, 'groups' => 'docgen:read']); @@ -211,35 +240,6 @@ class ActivityContext implements return $options['mainPerson'] || $options['person1'] || $options['person2']; } - public function contextGenerationDataNormalize(DocGeneratorTemplate $template, $entity, array $data): array - { - $normalized = []; - - foreach (['mainPerson', 'person1', 'person2'] as $k) { - $normalized[$k] = null === $data[$k] ? null : $data[$k]->getId(); - } - - return $normalized; - } - - public function contextGenerationDataDenormalize(DocGeneratorTemplate $template, $entity, array $data): array - { - $denormalized = []; - - foreach (['mainPerson', 'person1', 'person2'] as $k) { - if (null !== ($id = ($data[$k] ?? null))) { - $denormalized[$k] = $this->personRepository->find($id); - } else { - $denormalized[$k] = null; - } - } - - return $denormalized; - } - - /** - * @param Activity $entity - */ public function storeGenerated(DocGeneratorTemplate $template, StoredObject $storedObject, object $entity, array $contextGenerationData): void { $storedObject->setTitle($this->translatableStringHelper->localize($template->getName())); diff --git a/src/Bundle/ChillActivityBundle/Service/DocGenerator/ListActivitiesByAccompanyingPeriodContext.php b/src/Bundle/ChillActivityBundle/Service/DocGenerator/ListActivitiesByAccompanyingPeriodContext.php index 7e1873710..266fadfee 100644 --- a/src/Bundle/ChillActivityBundle/Service/DocGenerator/ListActivitiesByAccompanyingPeriodContext.php +++ b/src/Bundle/ChillActivityBundle/Service/DocGenerator/ListActivitiesByAccompanyingPeriodContext.php @@ -34,10 +34,16 @@ use Chill\ThirdPartyBundle\Entity\ThirdParty; use Chill\ThirdPartyBundle\Repository\ThirdPartyRepository; use DateTime; use libphonenumber\PhoneNumber; +use Symfony\Component\Form\Extension\Core\Type\CheckboxType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Serializer\Normalizer\AbstractNormalizer; use Symfony\Component\Serializer\Normalizer\NormalizerInterface; +use function in_array; +/** + * @implements DocGeneratorContextWithPublicFormInterface + * @implements DocGeneratorContextWithAdminFormInterface + */ class ListActivitiesByAccompanyingPeriodContext implements DocGeneratorContextWithAdminFormInterface, DocGeneratorContextWithPublicFormInterface @@ -69,7 +75,7 @@ class ListActivitiesByAccompanyingPeriodContext implements SocialIssueRepository $socialIssueRepository, ThirdPartyRepository $thirdPartyRepository, TranslatableStringHelperInterface $translatableStringHelper, - UserRepository $userRepository + UserRepository $userRepository, ) { $this->accompanyingPeriodContext = $accompanyingPeriodContext; $this->activityACLAwareRepository = $activityACLAwareRepository; @@ -100,14 +106,86 @@ class ListActivitiesByAccompanyingPeriodContext implements public function buildPublicForm(FormBuilderInterface $builder, DocGeneratorTemplate $template, $entity): void { $this->accompanyingPeriodContext->buildPublicForm($builder, $template, $entity); + + $builder + ->add('myActivitiesOnly', CheckboxType::class, [ + 'required' => false, + 'label' => 'docgen.myActivitiesOnly', + ]) + ->add('myWorksOnly', CheckboxType::class, [ + 'required' => false, + 'label' => 'docgen.myWorksOnly', + ]); } - public function getData(DocGeneratorTemplate $template, $entity, array $contextGenerationData = []): array + public function contextGenerationDataDenormalize(DocGeneratorTemplate $template, $entity, array $data): array + { + + $denormalized = $this->accompanyingPeriodContext->contextGenerationDataDenormalize($template, $entity, $data); + + foreach (['myActivitiesOnly', 'myWorksOnly'] as $k) { + $denormalized[$k] = $data[$k]; + } + + return $denormalized; + } + + public function contextGenerationDataNormalize(DocGeneratorTemplate $template, $entity, array $data): array + { + $normalized = $this->accompanyingPeriodContext->contextGenerationDataNormalize($template, $entity, $data); + + foreach (['myActivitiesOnly', 'myWorksOnly'] as $k) { + $normalized[$k] = $data[$k] ?? false; + } + + return $normalized; + } + + private function filterActivitiesByUser(array $activities, User $user): array + { + return array_filter( + $activities, + function ($activity) use ($user) { + $activityUsernames = array_map(static function ($user) { + return $user['username']; + }, $activity['users'] ?? []); + return in_array($user->getUsername(), $activityUsernames, true); + } + ); + } + + private function filterWorksByUser(array $works, User $user): array + { + return array_filter( + $works, + function ($work) use ($user) { + $workUsernames = array_map(static function ($user) { + return $user['username']; + }, $work['referrers'] ?? []); + + return in_array($user->getUsername(), $workUsernames, true); + } + ); + } + + public function getData(DocGeneratorTemplate $template, object $entity, array $contextGenerationData = []): array { $data = $this->accompanyingPeriodContext->getData($template, $entity, $contextGenerationData); - $data['activities'] = $this->getActivitiesSimplified($entity); + $activities = $this->getActivitiesSimplified($entity); + $myActivitiesOnly = $contextGenerationData['myActivitiesOnly']; + if ($myActivitiesOnly && isset($contextGenerationData['creator'])) { + $activities = $this->filterActivitiesByUser($activities, $contextGenerationData['creator']); + } + + $data['activities'] = $activities; + + $myWorksOnly = $contextGenerationData['myWorksOnly']; + + if ($myWorksOnly && isset($contextGenerationData['creator'])) { + $data['course']['works'] = $this->filterWorksByUser($data['course']['works'], $contextGenerationData['creator']); + } return $data; } @@ -143,17 +221,7 @@ class ListActivitiesByAccompanyingPeriodContext implements public function hasPublicForm(DocGeneratorTemplate $template, $entity): bool { - return $this->accompanyingPeriodContext->hasPublicForm($template, $entity); - } - - public function contextGenerationDataNormalize(DocGeneratorTemplate $template, $entity, array $data): array - { - return $this->accompanyingPeriodContext->contextGenerationDataNormalize($template, $entity, $data); - } - - public function contextGenerationDataDenormalize(DocGeneratorTemplate $template, $entity, array $data): array - { - return $this->accompanyingPeriodContext->contextGenerationDataDenormalize($template, $entity, $data); + return true; } public function storeGenerated(DocGeneratorTemplate $template, StoredObject $storedObject, object $entity, array $contextGenerationData): void diff --git a/src/Bundle/ChillActivityBundle/Templating/Entity/ActivityReasonRender.php b/src/Bundle/ChillActivityBundle/Templating/Entity/ActivityReasonRender.php index 991591141..c60a8d286 100644 --- a/src/Bundle/ChillActivityBundle/Templating/Entity/ActivityReasonRender.php +++ b/src/Bundle/ChillActivityBundle/Templating/Entity/ActivityReasonRender.php @@ -13,13 +13,18 @@ namespace Chill\ActivityBundle\Templating\Entity; use Chill\ActivityBundle\Entity\ActivityReason; use Chill\MainBundle\Templating\Entity\AbstractChillEntityRender; +use Chill\MainBundle\Templating\Entity\BoxUtilsChillEntityRenderTrait; +use Chill\MainBundle\Templating\Entity\ChillEntityRenderInterface; use Chill\MainBundle\Templating\TranslatableStringHelper; /** * Render activity reason. + * + * @implements ChillEntityRenderInterface */ -class ActivityReasonRender extends AbstractChillEntityRender +class ActivityReasonRender implements ChillEntityRenderInterface { + use BoxUtilsChillEntityRenderTrait; /** * @var TranslatableStringHelper */ @@ -51,9 +56,6 @@ class ActivityReasonRender extends AbstractChillEntityRender $this->getDefaultClosingBox(); } - /** - * @param ActivityReason $entity - */ public function renderString($entity, array $options): string { $category = ''; diff --git a/src/Bundle/ChillActivityBundle/Tests/Controller/ActivityControllerTest.php b/src/Bundle/ChillActivityBundle/Tests/Controller/ActivityControllerTest.php index 8a30a6c9b..8e2c219f0 100644 --- a/src/Bundle/ChillActivityBundle/Tests/Controller/ActivityControllerTest.php +++ b/src/Bundle/ChillActivityBundle/Tests/Controller/ActivityControllerTest.php @@ -121,14 +121,14 @@ final class ActivityControllerTest extends WebTestCase $client->getResponse()->getStatusCode(), 'Unexpected HTTP status code for GET /activity/' ); - $crawler = $client->click($crawler->selectLink('Ajouter une nouvelle activité') + $crawler = $client->click($crawler->selectLink('Ajouter un nouvel échange') ->link()); $reason1 = $this->getRandomActivityReason(); $reason2 = $this->getRandomActivityReason([$reason1->getId()]); // Fill in the form and submit it - $form = $crawler->selectButton('Ajouter une nouvelle activité')->form([ + $form = $crawler->selectButton('Ajouter un nouvel échange')->form([ 'chill_activitybundle_activity' => [ 'date' => '15-01-2015', 'durationTime' => 600, @@ -152,9 +152,9 @@ final class ActivityControllerTest extends WebTestCase ); // Edit the entity - $crawler = $client->click($crawler->selectLink("Modifier l'activité")->link()); + $crawler = $client->click($crawler->selectLink("Modifier l'échange")->link()); - $form = $crawler->selectButton("Sauver l'activité")->form([ + $form = $crawler->selectButton("Sauver l'échange")->form([ 'chill_activitybundle_activity' => [ 'date' => '25-01-2015', // 'remark' => 'Foo' @@ -234,7 +234,7 @@ final class ActivityControllerTest extends WebTestCase $user = new \Chill\MainBundle\Entity\User(); $user ->setPassword($container->get('security.password_encoder') - ->encodePassword($user, 'password')) + ->encodePassword($user, 'password')) ->setUsername($username) ->addGroupCenter($groupCenter); diff --git a/src/Bundle/ChillActivityBundle/Tests/Form/ActivityTypeTest.php b/src/Bundle/ChillActivityBundle/Tests/Form/ActivityTypeTest.php index b6cb6fc7b..df0a602a4 100644 --- a/src/Bundle/ChillActivityBundle/Tests/Form/ActivityTypeTest.php +++ b/src/Bundle/ChillActivityBundle/Tests/Form/ActivityTypeTest.php @@ -112,9 +112,9 @@ final class ActivityTypeTest extends KernelTestCase 'attendee' => true, ]]); -// var_dump($form->getErrors()->count()); var_dump($form->isValid()); -// foreach($form->getErrors() as $e) { fwrite(STDOUT, var_dump($e->getMessage())); } -// var_dump($form->getErrors()); + // var_dump($form->getErrors()->count()); var_dump($form->isValid()); + // foreach($form->getErrors() as $e) { fwrite(STDOUT, var_dump($e->getMessage())); } + // var_dump($form->getErrors()); $this->assertTrue($form->isSynchronized(), 'Test the form is synchronized'); $this->assertTrue($form->isValid(), 'test the form is valid'); diff --git a/src/Bundle/ChillActivityBundle/translations/messages.fr.yml b/src/Bundle/ChillActivityBundle/translations/messages.fr.yml index 4dd67ceb8..b64635f69 100644 --- a/src/Bundle/ChillActivityBundle/translations/messages.fr.yml +++ b/src/Bundle/ChillActivityBundle/translations/messages.fr.yml @@ -1,41 +1,41 @@ #general -Show the activity: Voir l'activité -Edit the activity: Modifier l'activité -Activity: Activité +Show the activity: Voir l'échange +Edit the activity: Modifier l'échange +Activity: Échange Duration time: Durée Duration Time: Durée durationTime: durée Travel time: Durée de déplacement -Attendee: Présence de la personne -attendee: présence de la personne +Attendee: Présence de l'usager +attendee: présence de l'usager list_reasons: liste des sujets user_username: nom de l'utilisateur circle_name: nom du cercle Remark: Commentaire No comments: Aucun commentaire -Add a new activity: Ajouter une nouvelle activité -Activity list: Liste des activités +Add a new activity: Ajouter une nouvel échange +Activity list: Liste des échanges present: présent not present: absent Delete: Supprimer Update: Mettre à jour -Update activity: Modifier l'activité +Update activity: Modifier l'échange Scope: Cercle -Activity data: Données de l'activité -Activity location: Localisation de l'activité +Activity data: Données de l'échange +Activity location: Localisation de l'échange No reason associated: Aucun sujet No social issues associated: Aucune problématique sociale No social actions associated: Aucune action d'accompagnement -There isn't any activities.: Aucune activité enregistrée. -type_name: type de l'activité +There isn't any activities.: Aucun échange enregistré. +type_name: type de l'échange person_firstname: prénom person_lastname: nom de famille -person_id: identifiant de la personne +person_id: identifiant de l'usager Type: Type Invisible: Invisible Optional: Optionnel Required: Obligatoire -Persons: Personnes +Persons: Usagers Users: Utilisateurs Emergency: Urgent Sent received: Entrant / Sortant @@ -50,10 +50,10 @@ received: Reçu #forms -Activity creation: Nouvelle activité +Activity creation: Nouvel échange Create: Créer Back to the list: Retour à la liste -Save activity: Sauver l'activité +Save activity: Sauver l'échange Reset form: Remise à zéro du formulaire Choose the duration: Choisir la durée Choose a type: Choisir un type @@ -90,40 +90,40 @@ activity: No documents: Aucun document #timeline -'%user% has done an %activity_type%': '%user% a effectué une activité de type "%activity_type%"' +'%user% has done an %activity_type%': '%user% a effectué un échange de type "%activity_type%"' #controller -'Success : activity created!': L'activité a été créée. -'The form is not valid. The activity has not been created !': Le formulaire est invalide. L'activité n'a pas été créée. -'Success : activity updated!': L'activité a été mise à jour. -'The form is not valid. The activity has not been updated !': Le formulaire est invalide. L'activité n'a pas été mise à jour. +'Success : activity created!': L'échange a été créé. +'The form is not valid. The activity has not been created !': Le formulaire est invalide. L'échange n'a pas été créé. +'Success : activity updated!': L'échange a été mis à jour. +'The form is not valid. The activity has not been updated !': Le formulaire est invalide. L'échange n'a pas été mise à jour. # ROLES -CHILL_ACTIVITY_CREATE: Créer une activité -CHILL_ACTIVITY_UPDATE: Modifier une activité -CHILL_ACTIVITY_SEE: Voir une activité -CHILL_ACTIVITY_SEE_DETAILS: Voir le détail des activités -CHILL_ACTIVITY_DELETE: Supprimer une activité -CHILL_ACTIVITY_STATS: Statistique des activités -CHILL_ACTIVITY_LIST: Liste des activités +CHILL_ACTIVITY_CREATE: Créer un échange +CHILL_ACTIVITY_UPDATE: Modifier un échange +CHILL_ACTIVITY_SEE: Voir un échange +CHILL_ACTIVITY_SEE_DETAILS: Voir le détail des échanges +CHILL_ACTIVITY_DELETE: Supprimer un échange +CHILL_ACTIVITY_STATS: Statistique des échanges +CHILL_ACTIVITY_LIST: Liste des échanges # admin -Activities: Activités -Activity configuration: Configuration des activités -Activity configuration menu: Configuration des activités -Activity types: Types d'activité -Activity type configuration: Configuration des categories d'activités -Activity Reasons: Sujets d'une activité -Activity Reasons Category: Catégories de sujet d'activités -Activity Types Categories: Catégories des types d'activité -Activity Presences: Presences aux activités +Activities: Échanges +Activity configuration: Configuration des échanges +Activity configuration menu: Configuration des échanges +Activity types: Types d'échange +Activity type configuration: Configuration des catégories d'échanges +Activity Reasons: Sujets d'un échange +Activity Reasons Category: Catégories de sujet d'échanges +Activity Types Categories: Catégories des types d'échange +Activity Presences: Presences aux échanges Associated activity reason category is inactive: La catégorie de sujet attachée est inactive # Crud crud: activity_type: - title_new: Nouveau type d'activité + title_new: Nouveau type d'échange title_edit: Edition d'un type d'activité activity_type_category: title_new: Nouvelle catégorie de type d'activité @@ -159,8 +159,8 @@ Create a new activity presence: Créer une nouvelle "Présence aux activités" # activity type type admin ActivityType list: Types d'activités Create a new activity type: Créer un nouveau type d'activité -Persons visible: Visibilité du champ Personnes -Persons label: Libellé du champ Personnes +Persons visible: Visibilité du champ Usagers +Persons label: Libellé du champ Usagers User visible: Visibilité du champ Utilisateur User label: Libellé du champ Utilisateur Date visible: Visibilité du champ Date @@ -183,8 +183,8 @@ Private comment visible: Visibilité du champ Commentaire Privé Private comment label: Libellé du champ Commentaire Privé Emergency visible: Visibilité du champ Urgent Emergency label: Libellé du champ Urgent -Accompanying period visible: Visibilité du champ Période d'accompagnement -Accompanying period label: Libellé du champ Période d'accompagnement +Accompanying period visible: Visibilité du champ parcours d'accompagnement +Accompanying period label: Libellé du champ parcours d'accompagnement Social issues visible: Visibilité du champ Problématiques sociales Social issues label: Libellé du champ Problématiques sociales Social actions visible: Visibilité du champ Action sociale @@ -206,10 +206,10 @@ Are you sure you want to remove the activity about "%name%" ?: Êtes-vous sûr d The activity has been successfully removed.: L'activité a été supprimée. # exports -Exports of activities linked to a person: Exports des activités liées à une personne -Number of activities linked to a person: Nombre d'activités liées à une personne +Exports of activities linked to a person: Exports des activités liées à un usager +Number of activities linked to a person: Nombre d'activités liées à un usager Count activities linked to a person: Nombre d'activités -Count activities linked to a person by various parameters.: Compte le nombre d'activités enregistrées et liées à une personne en fonction de différents paramètres. +Count activities linked to a person by various parameters.: Compte le nombre d'activités enregistrées et liées à un usager en fonction de différents paramètres. Sum activity linked to a person duration: Durée des activités Sum activities linked to a person duration: Durée des activités liés à un usager Sum activities linked to a person duration by various parameters.: Additionne la durée des activités en fonction de différents paramètres. @@ -244,10 +244,10 @@ Activities before this date: Activités avant cette date "Filtered by date of activity: only between %date_from% and %date_to%": "Filtré par date de l'activité: uniquement entre %date_from% et %date_to%" This date should be after the date given in "Implied in an activity after this date" field: Cette date devrait être postérieure à la date donnée dans le champ "activités après cette date" -Filtered by person having an activity in a period: Uniquement les personnes ayant eu une activité dans la période donnée +Filtered by person having an activity in a period: Uniquement les usagers ayant eu une activité dans la période donnée Implied in an activity after this date: Impliqué dans une activité après cette date Implied in an activity before this date: Impliqué dans une activité avant cette date -Filtered by person having an activity between %date_from% and %date_to% with reasons %reasons_name%: Filtré par personnes associées à une activité entre %date_from% et %date_to% avec les sujets %reasons_name% +Filtered by person having an activity between %date_from% and %date_to% with reasons %reasons_name%: Filtré par usager associées à une activité entre %date_from% et %date_to% avec les sujets %reasons_name% Activity reasons for those activities: Sujets de ces activités Filter by activity type: Filtrer les activités par type @@ -326,9 +326,11 @@ This is the minimal activity data: Activité n° docgen: Activity basic: Echange - A basic context for activity: Contexte pour les activités - Accompanying period with a list of activities: Parcours d'accompagnement avec liste des activités - Accompanying period with a list of activities description: Ce contexte reprend les informations du parcours, et tous les activités pour un parcours. Les activités ne sont pas filtrés. + A basic context for activity: Contexte pour les échanges + Accompanying period with a list of activities: Parcours d'accompagnement avec liste des échanges + Accompanying period with a list of activities description: Ce contexte reprend les informations du parcours, et tous les échanges pour un parcours. Les échanges ne sont pas filtrés. + myActivitiesOnly: Prendre en compte uniquement les échanges dans lesquels je suis intervenu + myWorksOnly: Prendre en compte uniquement les actions d'accompagnement dont je suis référent export: list: @@ -336,8 +338,8 @@ export: users name: Nom des utilisateurs users ids: Identifiant des utilisateurs third parties ids: Identifiant des tiers - persons ids: Identifiant des personnes - persons name: Nom des personnes + persons ids: Identifiant des usagers + persons name: Nom des usagers thirds parties: Tiers date: Date de l'activité locationName: Localisation diff --git a/src/Bundle/ChillActivityBundle/translations/messages.nl.yaml b/src/Bundle/ChillActivityBundle/translations/messages.nl.yaml index dac37fc7d..c7dc05f2b 100644 --- a/src/Bundle/ChillActivityBundle/translations/messages.nl.yaml +++ b/src/Bundle/ChillActivityBundle/translations/messages.nl.yaml @@ -47,10 +47,10 @@ Reasons: Onderwerpen #forms -Activity creation: Nouvelle activité +Activity creation: Nouvel échange Create: Créer Back to the list: Retour à la liste -Save activity: Sauver l'activité +Save activity: Sauver l'échange Reset form: Remise à zéro du formulaire Choose the duration: Choisir la durée Choose a type: Choisir un type @@ -79,43 +79,43 @@ activity: No documents: Aucun document #timeline -'%user% has done an %activity_type%': '%user% a effectué une activité de type "%activity_type%"' +'%user% has done an %activity_type%': '%user% a effectué un échange de type "%activity_type%"' #controller -'Success : activity created!': L'activité a été créée. -'The form is not valid. The activity has not been created !': Le formulaire est invalide. L'activité n'a pas été créée. -'Success : activity updated!': L'activité a été mise à jour. -'The form is not valid. The activity has not been updated !': Le formulaire est invalide. L'activité n'a pas été mise à jour. +'Success : activity created!': L'échange a été créé. +'The form is not valid. The activity has not been created !': Le formulaire est invalide. L'échange n'a pas été créé. +'Success : activity updated!': L'échange a été mis à jour. +'The form is not valid. The activity has not been updated !': Le formulaire est invalide. L'échange n'a pas été mis à jour. # ROLES -CHILL_ACTIVITY_CREATE: Créer une activité -CHILL_ACTIVITY_UPDATE: Modifier une activité -CHILL_ACTIVITY_SEE: Voir une activité -CHILL_ACTIVITY_SEE_DETAILS: Voir le détail des activités -CHILL_ACTIVITY_DELETE: Supprimer une activité -CHILL_ACTIVITY_STATS: Statistique des activités -CHILL_ACTIVITY_LIST: Liste des activités +CHILL_ACTIVITY_CREATE: Créer un échange +CHILL_ACTIVITY_UPDATE: Modifier un échange +CHILL_ACTIVITY_SEE: Voir un échange +CHILL_ACTIVITY_SEE_DETAILS: Voir le détail des échanges +CHILL_ACTIVITY_DELETE: Supprimer un échange +CHILL_ACTIVITY_STATS: Statistique des échanges +CHILL_ACTIVITY_LIST: Liste des échanges # admin -Activities: Activités -Activity configuration: Configuration des activités -Activity configuration menu: Configuration des activités -Activity types: Types d'activité -Activity type configuration: Configuration des categories d'activités -Activity Reasons: Sujets d'une activité -Activity Reasons Category: Catégories de sujet d'activités -Activity Types Categories: Catégories des types d'activité -Activity Presences: Presences des activités +Activities: Échanges +Activity configuration: Configuration des échanges +Activity configuration menu: Configuration des échanges +Activity types: Types d'échange +Activity type configuration: Configuration des categories d'échanges +Activity Reasons: Sujets d'un échange +Activity Reasons Category: Catégories de sujet d'échanges +Activity Types Categories: Catégories des types d'échanges +Activity Presences: Presences des échanges # Crud crud: activity_type: - title_new: Nouveau type d'activité - title_edit: Edition d'un type d'activité + title_new: Nouveau type d'échange + title_edit: Edition d'un type d'échange activity_type_category: - title_new: Nouvelle catégorie de type d'activité - title_edit: Edition d'une catégorie de type d'activité + title_new: Nouvelle catégorie de type d'échange + title_edit: Edition d'une catégorie de type d'échange # activity reason admin ActivityReason list: Liste des sujets @@ -124,7 +124,7 @@ Active: Actif Category: Catégorie ActivityReason creation: Nouveau sujet ActivityReason edit: Modification d'un sujet -ActivityReason: Sujet d'activité +ActivityReason: Sujet d'échange The entity is inactive and won't be proposed: Le sujet est inactif et ne sera pas proposé The entity is active and will be proposed: Le sujet est actif et sera proposé @@ -133,13 +133,13 @@ ActivityReasonCategory list: Catégories de sujets Create a new activity category reason: Créer une nouvelle catégorie ActivityReasonCategory creation: Nouvelle catégorie de sujet ActivityReasonCategory edit: Modification d'une catégorie de sujet -ActivityReasonCategory: Catégorie de sujet d'activité +ActivityReasonCategory: Catégorie de sujet d'échange ActivityReasonCategory is active and will be proposed: La catégorie est active et sera proposée ActivityReasonCategory is inactive and won't be proposed: La catégorie est inactive et ne sera pas proposée # activity type type admin -ActivityType list: Types d'activités -Create a new activity type: Créer un nouveau type d'activité +ActivityType list: Types d'échanges +Create a new activity type: Créer un nouveau type d'échange Persons visible: Visibilité du champ Personnes Persons label: Libellé du champ Personnes User visible: Visibilité du champ Utilisateur @@ -177,20 +177,20 @@ Documents label: Libellé du champ Documents # activity type category admin ActivityTypeCategory list: Liste des catégories des types d'activité -Create a new activity type category: Créer une nouvelle catégorie de type d'activité +Create a new activity type category: Créer une nouvelle catégorie de type d'échange # activity delete -Remove activity: Supprimer une activité -Are you sure you want to remove the activity about "%name%" ?: Êtes-vous sûr de vouloir supprimer une activité qui concerne "%name%" ? -The activity has been successfully removed.: L'activité a été supprimée. +Remove activity: Supprimer un échange +Are you sure you want to remove the activity about "%name%" ?: Êtes-vous sûr de vouloir supprimer un échange qui concerne "%name%" ? +The activity has been successfully removed.: L'échange a été supprimée. # exports -Count activities: Nombre d'activités -Count activities by various parameters.: Compte le nombre d'activités enregistrées en fonction de différents paramètres. -Sum activity duration: Total de la durée des activités -Sum activities duration by various parameters.: Additionne la durée des activités en fonction de différents paramètres. -List activities: Liste les activités -Number of activities: Nombre d'activités +Count activities: Nombre d'échanges +Count activities by various parameters.: Compte le nombre d'échanges enregistrées en fonction de différents paramètres. +Sum activity duration: Total de la durée des échanges +Sum activities duration by various parameters.: Additionne la durée des échanges en fonction de différents paramètres. +List activities: Liste les échanges +Number of activities: Nombre d'échanges #filters Filter by reason: Filtrer par sujet d'activité diff --git a/src/Bundle/ChillActivityBundle/translations/validators.fr.yml b/src/Bundle/ChillActivityBundle/translations/validators.fr.yml index f2c104828..053752854 100644 --- a/src/Bundle/ChillActivityBundle/translations/validators.fr.yml +++ b/src/Bundle/ChillActivityBundle/translations/validators.fr.yml @@ -1,22 +1,22 @@ The reasons's level should not be empty: Le niveau du sujet ne peut pas être vide At least one reason must be choosen: Au moins un sujet doit être choisi -For this type of activity, you must add at least one person: Pour ce type d'activité, vous devez ajouter au moins un usager -For this type of activity, you must add at least one user: Pour ce type d'activité, vous devez ajouter au moins un utilisateur -For this type of activity, you must add at least one third party: Pour ce type d'activité, vous devez ajouter au moins un tiers -For this type of activity, user is required: Pour ce type d'activité, l'utilisateur est requis -For this type of activity, date is required: Pour ce type d'activité, la date est requise -For this type of activity, location is required: Pour ce type d'activité, la localisation est requise -For this type of activity, attendee is required: Pour ce type d'activité, le champ "Présence de la personne" est requis -For this type of activity, duration time is required: Pour ce type d'activité, la durée est requise -For this type of activity, travel time is required: Pour ce type d'activité, la durée du trajet est requise -For this type of activity, reasons is required: Pour ce type d'activité, le champ "sujet" est requis -For this type of activity, comment is required: Pour ce type d'activité, un commentaire est requis -For this type of activity, sent/received is required: Pour ce type d'activité, le champ Entrant/Sortant est requis -For this type of activity, document is required: Pour ce type d'activité, un document est requis -For this type of activity, emergency is required: Pour ce type d'activité, le champ "Urgent" est requis -For this type of activity, accompanying period is required: Pour ce type d'activité, le parcours d'accompagnement est requis -For this type of activity, you must add at least one social issue: Pour ce type d'activité, vous devez ajouter au moins une problématique sociale -For this type of activity, you must add at least one social action: Pour ce type d'activité, vous devez indiquer au moins une action sociale +For this type of activity, you must add at least one person: Pour ce type d'échange, vous devez ajouter au moins un usager +For this type of activity, you must add at least one user: Pour ce type d'échange, vous devez ajouter au moins un utilisateur +For this type of activity, you must add at least one third party: Pour ce type d'échange, vous devez ajouter au moins un tiers +For this type of activity, user is required: Pour ce type d'échange, l'utilisateur est requis +For this type of activity, date is required: Pour ce type d'échange, la date est requise +For this type of activity, location is required: Pour ce type d'échange, la localisation est requise +For this type of activity, attendee is required: Pour ce type d'échange, le champ "Présence de l'usager" est requis +For this type of activity, duration time is required: Pour ce type d'échange, la durée est requise +For this type of activity, travel time is required: Pour ce type d'échange, la durée du trajet est requise +For this type of activity, reasons is required: Pour ce type d'échange, le champ "sujet" est requis +For this type of activity, comment is required: Pour ce type d'échange, un commentaire est requis +For this type of activity, sent/received is required: Pour ce type d'échange, le champ Entrant/Sortant est requis +For this type of activity, document is required: Pour ce type d'échange, un document est requis +For this type of activity, emergency is required: Pour ce type d'échange, le champ "Urgent" est requis +For this type of activity, accompanying period is required: Pour ce type d'échange, le parcours d'accompagnement est requis +For this type of activity, you must add at least one social issue: Pour ce type d'échange, vous devez ajouter au moins une problématique sociale +For this type of activity, you must add at least one social action: Pour ce type d'échange, vous devez indiquer au moins une action sociale # admin This parameter must be equal to social issue parameter: Ce paramètre doit être égal au paramètre "Visibilité du champs Problématiques sociales" diff --git a/src/Bundle/ChillAsideActivityBundle/src/DataFixtures/ORM/LoadAsideActivity.php b/src/Bundle/ChillAsideActivityBundle/src/DataFixtures/ORM/LoadAsideActivity.php index d1ac55f40..6f6a11390 100644 --- a/src/Bundle/ChillAsideActivityBundle/src/DataFixtures/ORM/LoadAsideActivity.php +++ b/src/Bundle/ChillAsideActivityBundle/src/DataFixtures/ORM/LoadAsideActivity.php @@ -55,7 +55,7 @@ class LoadAsideActivity extends Fixture implements DependentFixtureInterface $this->getReference('aside_activity_category_0') ) ->setDate((new DateTimeImmutable('today')) - ->sub(new DateInterval('P' . random_int(1, 100) . 'D'))); + ->sub(new DateInterval('P' . random_int(1, 100) . 'D'))); $manager->persist($activity); } diff --git a/src/Bundle/ChillAsideActivityBundle/src/Export/Export/ListAsideActivity.php b/src/Bundle/ChillAsideActivityBundle/src/Export/Export/ListAsideActivity.php index bf370f71b..aee168174 100644 --- a/src/Bundle/ChillAsideActivityBundle/src/Export/Export/ListAsideActivity.php +++ b/src/Bundle/ChillAsideActivityBundle/src/Export/Export/ListAsideActivity.php @@ -1,10 +1,18 @@ format('H:i:s'); } @@ -118,7 +122,7 @@ final class ListAsideActivity implements ListInterface, GroupedExportInterface case 'createdAt': case 'updatedAt': case 'date': - return $this->dateTimeHelper->getLabel('export.aside_activity.'.$key); + return $this->dateTimeHelper->getLabel('export.aside_activity.' . $key); case 'agent_id': case 'creator_id': @@ -156,8 +160,8 @@ final class ListAsideActivity implements ListInterface, GroupedExportInterface return 'export.aside_activity.main_center'; } - /** @var Center $c */ if (null === $value || '' === $value || null === $c = $this->centerRepository->find($value)) { + /** @var Center $c */ return ''; } @@ -165,7 +169,7 @@ final class ListAsideActivity implements ListInterface, GroupedExportInterface }; default: - throw new \LogicException('this key is not supported : ' . $key); + throw new LogicException('this key is not supported : ' . $key); } } @@ -182,19 +186,20 @@ final class ListAsideActivity implements ListInterface, GroupedExportInterface 'aside_activity_type', 'date', 'duration', - 'note' + 'note', ]; } - /** - * @param QueryBuilder $query - * @param array $data - */ public function getResult($query, $data): array { return $query->getQuery()->getResult(AbstractQuery::HYDRATE_ARRAY); } + public function getTitle() + { + return 'export.aside_activity.List of aside activities'; + } + public function getType(): string { return Declarations::ASIDE_ACTIVITY_TYPE; @@ -204,8 +209,7 @@ final class ListAsideActivity implements ListInterface, GroupedExportInterface { $qb = $this->em->createQueryBuilder() ->from(AsideActivity::class, 'aside') - ->leftJoin('aside.agent', 'agent') - ; + ->leftJoin('aside.agent', 'agent'); $qb ->addSelect('aside.id AS id') @@ -218,8 +222,7 @@ final class ListAsideActivity implements ListInterface, GroupedExportInterface ->addSelect('IDENTITY(aside.type) AS aside_activity_type') ->addSelect('aside.date') ->addSelect('aside.duration') - ->addSelect('aside.note') - ; + ->addSelect('aside.note'); return $qb; } diff --git a/src/Bundle/ChillAsideActivityBundle/src/Export/Filter/ByDateFilter.php b/src/Bundle/ChillAsideActivityBundle/src/Export/Filter/ByDateFilter.php index 2d49b3d57..7a1b6f4dc 100644 --- a/src/Bundle/ChillAsideActivityBundle/src/Export/Filter/ByDateFilter.php +++ b/src/Bundle/ChillAsideActivityBundle/src/Export/Filter/ByDateFilter.php @@ -17,7 +17,6 @@ use Chill\MainBundle\Form\Type\Export\FilterType; use Chill\MainBundle\Form\Type\PickRollingDateType; use Chill\MainBundle\Service\RollingDate\RollingDate; use Chill\MainBundle\Service\RollingDate\RollingDateConverterInterface; -use Doctrine\ORM\Query\Expr\Andx; use Doctrine\ORM\QueryBuilder; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormError; diff --git a/src/Bundle/ChillAsideActivityBundle/src/Export/Filter/ByUserFilter.php b/src/Bundle/ChillAsideActivityBundle/src/Export/Filter/ByUserFilter.php index c2a3b4c54..795c813cd 100644 --- a/src/Bundle/ChillAsideActivityBundle/src/Export/Filter/ByUserFilter.php +++ b/src/Bundle/ChillAsideActivityBundle/src/Export/Filter/ByUserFilter.php @@ -15,7 +15,6 @@ use Chill\AsideActivityBundle\Export\Declarations; use Chill\MainBundle\Export\FilterInterface; use Chill\MainBundle\Form\Type\PickUserDynamicType; use Chill\MainBundle\Templating\Entity\UserRender; -use Doctrine\ORM\Query\Expr\Andx; use Doctrine\ORM\QueryBuilder; use Symfony\Component\Form\FormBuilderInterface; diff --git a/src/Bundle/ChillAsideActivityBundle/src/Form/AsideActivityFormType.php b/src/Bundle/ChillAsideActivityBundle/src/Form/AsideActivityFormType.php index c02e53c23..9a95a8d09 100644 --- a/src/Bundle/ChillAsideActivityBundle/src/Form/AsideActivityFormType.php +++ b/src/Bundle/ChillAsideActivityBundle/src/Form/AsideActivityFormType.php @@ -28,22 +28,17 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormEvent; use Symfony\Component\Form\FormEvents; use Symfony\Component\OptionsResolver\OptionsResolver; -use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; use function in_array; final class AsideActivityFormType extends AbstractType { - private TokenStorageInterface $storage; - private array $timeChoices; public function __construct( ParameterBagInterface $parameterBag, - TokenStorageInterface $storage ) { $this->timeChoices = $parameterBag->get('chill_aside_activity.form.time_duration'); - $this->storage = $storage; } public function buildForm(FormBuilderInterface $builder, array $options) diff --git a/src/Bundle/ChillAsideActivityBundle/src/Menu/SectionMenuBuilder.php b/src/Bundle/ChillAsideActivityBundle/src/Menu/SectionMenuBuilder.php index d4ed7dbf9..f23fcdc8a 100644 --- a/src/Bundle/ChillAsideActivityBundle/src/Menu/SectionMenuBuilder.php +++ b/src/Bundle/ChillAsideActivityBundle/src/Menu/SectionMenuBuilder.php @@ -44,17 +44,6 @@ class SectionMenuBuilder implements LocalMenuBuilderInterface 'order' => 11, 'icons' => ['plus'], ]); - $menu->addChild($this->translator->trans('Phonecall'), [ - 'route' => 'chill_crud_aside_activity_new', - 'routeParameters' => [ - 'type' => 1, - 'duration' => 900, - ], - ]) - ->setExtras([ - 'order' => 12, - 'icons' => ['plus'], - ]); } } diff --git a/src/Bundle/ChillAsideActivityBundle/src/Templating/Entity/CategoryRender.php b/src/Bundle/ChillAsideActivityBundle/src/Templating/Entity/CategoryRender.php index 7940b42e7..066a0ca52 100644 --- a/src/Bundle/ChillAsideActivityBundle/src/Templating/Entity/CategoryRender.php +++ b/src/Bundle/ChillAsideActivityBundle/src/Templating/Entity/CategoryRender.php @@ -16,6 +16,9 @@ use Chill\MainBundle\Templating\Entity\ChillEntityRenderInterface; use Chill\MainBundle\Templating\TranslatableStringHelper; use Symfony\Component\Templating\EngineInterface; +/** + * @implements ChillEntityRenderInterface + */ final class CategoryRender implements ChillEntityRenderInterface { public const DEFAULT_ARGS = [ @@ -45,9 +48,6 @@ final class CategoryRender implements ChillEntityRenderInterface return $parents; } - /** - * @param AsideActivityCategory $asideActivityCategory - */ public function renderBox($asideActivityCategory, array $options): string { $options = array_merge(self::DEFAULT_ARGS, $options); @@ -63,9 +63,6 @@ final class CategoryRender implements ChillEntityRenderInterface ); } - /** - * @param AsideActivityCategory $asideActivityCategory - */ public function renderString($asideActivityCategory, array $options): string { $options = array_merge(self::DEFAULT_ARGS, $options); @@ -84,9 +81,6 @@ final class CategoryRender implements ChillEntityRenderInterface return implode($options[self::SEPERATOR_KEY], $titles); } - /** - * @param AsideActivityCategory $asideActivityCategory - */ public function supports($asideActivityCategory, array $options): bool { return $asideActivityCategory instanceof AsideActivityCategory; diff --git a/src/Bundle/ChillAsideActivityBundle/src/translations/messages.fr.yml b/src/Bundle/ChillAsideActivityBundle/src/translations/messages.fr.yml index 0c807479f..cc428390c 100644 --- a/src/Bundle/ChillAsideActivityBundle/src/translations/messages.fr.yml +++ b/src/Bundle/ChillAsideActivityBundle/src/translations/messages.fr.yml @@ -21,7 +21,7 @@ Type: Type Invisible: Invisible Optional: Optionnel Required: Obligatoire -Persons: Personnes +Persons: Usagers Users: Utilisateurs Emergency: Urgent by: "Par " @@ -50,7 +50,7 @@ For agent: Pour l'utilisateur date: Date Duration: Durée Note: Note -Choose the agent for whom this activity is created: Choisissez l'agent pour qui l'activité est créée +Choose the agent for whom this activity is created: Choisissez l'agent pour qui l'échange est créé Choose the activity category: Choisir la catégorie #Duration diff --git a/src/Bundle/ChillBudgetBundle/Calculator/CalculatorInterface.php b/src/Bundle/ChillBudgetBundle/Calculator/CalculatorInterface.php index 63b4c7294..2662b896a 100644 --- a/src/Bundle/ChillBudgetBundle/Calculator/CalculatorInterface.php +++ b/src/Bundle/ChillBudgetBundle/Calculator/CalculatorInterface.php @@ -11,12 +11,13 @@ declare(strict_types=1); namespace Chill\BudgetBundle\Calculator; -use Chill\BudgetBundle\Entity\AbstractElement; +use Chill\BudgetBundle\Entity\Charge; +use Chill\BudgetBundle\Entity\Resource; interface CalculatorInterface { /** - * @param AbstractElement[] $elements + * @param array $elements */ public function calculate(array $elements): ?CalculatorResult; diff --git a/src/Bundle/ChillBudgetBundle/Calculator/CalculatorManager.php b/src/Bundle/ChillBudgetBundle/Calculator/CalculatorManager.php index a37ac68dc..7987bdfdf 100644 --- a/src/Bundle/ChillBudgetBundle/Calculator/CalculatorManager.php +++ b/src/Bundle/ChillBudgetBundle/Calculator/CalculatorManager.php @@ -12,6 +12,8 @@ declare(strict_types=1); namespace Chill\BudgetBundle\Calculator; use Chill\BudgetBundle\Entity\AbstractElement; +use Chill\BudgetBundle\Entity\Charge; +use Chill\BudgetBundle\Entity\Resource; use OutOfBoundsException; use function array_key_exists; @@ -21,23 +23,26 @@ use function implode; class CalculatorManager { /** - * @var CalculatorInterface[] + * @var array */ - protected $calculators = []; + private array $calculators = []; - protected $defaultCalculator = []; + /** + * @var string[] + */ + private array $defaultCalculator = []; public function addCalculator(CalculatorInterface $calculator, bool $default) { - $this->calculators[$calculator::getAlias()] = $calculator; + $this->calculators[$calculator->getAlias()] = $calculator; if ($default) { - $this->defaultCalculator[] = $calculator::getAlias(); + $this->defaultCalculator[] = $calculator->getAlias(); } } /** - * @param AbstractElement[] $elements + * @param array $elements * * @return CalculatorResult[] */ @@ -46,23 +51,17 @@ class CalculatorManager $results = []; foreach ($this->defaultCalculator as $alias) { - $calculator = $this->calculators[$alias]; - $result = $calculator->calculate($elements); + $result = $this->getCalculator($alias)->calculate($elements); if (null !== $result) { - $results[$calculator::getAlias()] = $result; + $results[$alias] = $result; } } return $results; } - /** - * @param string $alias - * - * @return CalculatorInterface - */ - public function getCalculator($alias) + public function getCalculator(string $alias): CalculatorInterface { if (false === array_key_exists($alias, $this->calculators)) { throw new OutOfBoundsException("The calculator with alias '{$alias}' does " diff --git a/src/Bundle/ChillBudgetBundle/Controller/ElementController.php b/src/Bundle/ChillBudgetBundle/Controller/ElementController.php index 148afbd35..b5db3cd30 100644 --- a/src/Bundle/ChillBudgetBundle/Controller/ElementController.php +++ b/src/Bundle/ChillBudgetBundle/Controller/ElementController.php @@ -14,6 +14,8 @@ namespace Chill\BudgetBundle\Controller; use Chill\BudgetBundle\Calculator\CalculatorManager; use Chill\BudgetBundle\Entity\Charge; use Chill\BudgetBundle\Entity\Resource; +use Chill\BudgetBundle\Repository\ChargeRepository; +use Chill\BudgetBundle\Repository\ResourceRepository; use Chill\BudgetBundle\Security\Authorization\BudgetElementVoter; use Chill\PersonBundle\Entity\Household\Household; use Chill\PersonBundle\Entity\Person; @@ -29,24 +31,20 @@ use function count; class ElementController extends AbstractController { - protected CalculatorManager $calculator; + private CalculatorManager $calculator; - protected LoggerInterface $chillMainLogger; + private ResourceRepository $resourceRepository; - protected EntityManagerInterface $em; - - protected TranslatorInterface $translator; + private ChargeRepository $chargeRepository; public function __construct( - EntityManagerInterface $em, - TranslatorInterface $translator, - LoggerInterface $chillMainLogger, - CalculatorManager $calculator + CalculatorManager $calculator, + ResourceRepository $resourceRepository, + ChargeRepository $chargeRepository, ) { - $this->em = $em; - $this->translator = $translator; - $this->chillMainLogger = $chillMainLogger; $this->calculator = $calculator; + $this->resourceRepository = $resourceRepository; + $this->chargeRepository = $chargeRepository; } /** @@ -59,24 +57,10 @@ class ElementController extends AbstractController { $this->denyAccessUnlessGranted(BudgetElementVoter::SEE, $person); - $charges = $this->em - ->getRepository(Charge::class) - ->findByPerson($person); + $charges = $this->chargeRepository->findAllByEntity($person); + $resources = $this->resourceRepository->findAllByEntity($person); - $ressources = $this->em - ->getRepository(Resource::class) - ->findByPerson($person); - - $now = new DateTime('now'); - - $actualCharges = $this->em - ->getRepository(Charge::class) - ->findByEntityAndDate($person, $now); - $actualResources = $this->em - ->getRepository(Resource::class) - ->findByEntityAndDate($person, $now); - - $elements = array_merge($actualCharges, $actualResources); + $elements = array_merge($charges, $resources); if (count($elements) > 0) { $results = $this->calculator->calculateDefault($elements); @@ -85,7 +69,7 @@ class ElementController extends AbstractController return $this->render('ChillBudgetBundle:Person:index.html.twig', [ 'person' => $person, 'charges' => $charges, - 'resources' => $ressources, + 'resources' => $resources, 'results' => $results ?? [], ]); } @@ -100,60 +84,19 @@ class ElementController extends AbstractController { $this->denyAccessUnlessGranted(BudgetElementVoter::SEE, $household); - $charges = $this->em - ->getRepository(Charge::class) - ->findByHousehold($household); + $charges = $this->chargeRepository->findAllByEntity($household); + $resources = $this->resourceRepository->findAllByEntity($household); - $ressources = $this->em - ->getRepository(Resource::class) - ->findByHousehold($household); - - $now = new DateTime('now'); - - $actualCharges = $this->em - ->getRepository(Charge::class) - ->findByEntityAndDate($household, $now); - $actualResources = $this->em - ->getRepository(Resource::class) - ->findByEntityAndDate($household, $now); - - $elements = array_merge($actualCharges, $actualResources); + $elements = array_merge($charges, $resources); if (count($elements) > 0) { $results = $this->calculator->calculateDefault($elements); } - // quick solution to calculate the sum, difference and amount from - // controller. This should be done from the calculators - // TODO replace this by calculators - $wholeCharges = $actualCharges; - $wholeResources = $actualResources; - - foreach ($household->getCurrentPersons() as $person) { - $wholeCharges = array_merge( - $wholeCharges, - $this->em - ->getRepository(Charge::class) - ->findByEntityAndDate($person, $now) - ); - $wholeResources = array_merge( - $wholeResources, - $this->em - ->getRepository(Resource::class) - ->findByEntityAndDate($person, $now) - ); - } - return $this->render('ChillBudgetBundle:Household:index.html.twig', [ 'household' => $household, 'charges' => $charges, - 'resources' => $ressources, - 'wholeResources' => array_filter($wholeResources, static function (Resource $r) use ($now) { - return $r->getStartDate() <= $now && ($r->getEndDate() === null || $r->getEndDate() >= $now); - }), - 'wholeCharges' => array_filter($wholeCharges, static function (Charge $c) use ($now) { - return $c->getStartDate() <= $now && ($c->getEndDate() === null || $c->getEndDate() >= $now); - }), + 'resources' => $resources, 'results' => $results ?? [], ]); } diff --git a/src/Bundle/ChillBudgetBundle/Form/Admin/ChargeKindType.php b/src/Bundle/ChillBudgetBundle/Form/Admin/ChargeKindType.php index 59adf49af..c3c2a66bf 100644 --- a/src/Bundle/ChillBudgetBundle/Form/Admin/ChargeKindType.php +++ b/src/Bundle/ChillBudgetBundle/Form/Admin/ChargeKindType.php @@ -30,7 +30,7 @@ class ChargeKindType extends AbstractType ]) ->add('kind', TextType::class, [ 'label' => 'budget.admin.form.Charge_kind_key', - 'help' => 'budget.admin.form.This kind must contains only alphabeticals characters, and dashes. This string is in use during document generation. Changes may have side effect on document' + 'help' => 'budget.admin.form.This kind must contains only alphabeticals characters, and dashes. This string is in use during document generation. Changes may have side effect on document', ]) ->add('ordering', NumberType::class) ->add('isActive', CheckboxType::class, [ diff --git a/src/Bundle/ChillBudgetBundle/Form/Admin/ResourceKindType.php b/src/Bundle/ChillBudgetBundle/Form/Admin/ResourceKindType.php index 0605b8731..41d3a8b53 100644 --- a/src/Bundle/ChillBudgetBundle/Form/Admin/ResourceKindType.php +++ b/src/Bundle/ChillBudgetBundle/Form/Admin/ResourceKindType.php @@ -30,7 +30,7 @@ class ResourceKindType extends AbstractType ]) ->add('kind', TextType::class, [ 'label' => 'budget.admin.form.Resource_kind_key', - 'help' => 'budget.admin.form.This kind must contains only alphabeticals characters, and dashes. This string is in use during document generation. Changes may have side effect on document' + 'help' => 'budget.admin.form.This kind must contains only alphabeticals characters, and dashes. This string is in use during document generation. Changes may have side effect on document', ]) ->add('ordering', NumberType::class) ->add('isActive', CheckboxType::class, [ diff --git a/src/Bundle/ChillBudgetBundle/Repository/ChargeKindRepository.php b/src/Bundle/ChillBudgetBundle/Repository/ChargeKindRepository.php index 10d02749a..9aaf68ddf 100644 --- a/src/Bundle/ChillBudgetBundle/Repository/ChargeKindRepository.php +++ b/src/Bundle/ChillBudgetBundle/Repository/ChargeKindRepository.php @@ -30,7 +30,7 @@ final class ChargeKindRepository implements ChargeKindRepositoryInterface } /** - * @return ChargeType[] + * @return array */ public function findAll(): array { @@ -38,7 +38,7 @@ final class ChargeKindRepository implements ChargeKindRepositoryInterface } /** - * @return ChargeType[] + * @return array */ public function findAllActive(): array { @@ -49,12 +49,11 @@ final class ChargeKindRepository implements ChargeKindRepositoryInterface ->where($qb->expr()->eq('c.isActive', 'true')) ->orderBy('c.ordering', 'ASC') ->getQuery() - ->getResult() - ; + ->getResult(); } /** - * @return ChargeType[] + * @return array */ public function findAllByType(string $type): array { @@ -65,7 +64,7 @@ final class ChargeKindRepository implements ChargeKindRepositoryInterface * @param mixed|null $limit * @param mixed|null $offset * - * @return ChargeType[] + * @return array */ public function findBy(array $criteria, ?array $orderBy = null, ?int $limit = null, ?int $offset = null): array { diff --git a/src/Bundle/ChillBudgetBundle/Repository/ChargeKindRepositoryInterface.php b/src/Bundle/ChillBudgetBundle/Repository/ChargeKindRepositoryInterface.php index 5099a5674..f92851eba 100644 --- a/src/Bundle/ChillBudgetBundle/Repository/ChargeKindRepositoryInterface.php +++ b/src/Bundle/ChillBudgetBundle/Repository/ChargeKindRepositoryInterface.php @@ -19,31 +19,31 @@ interface ChargeKindRepositoryInterface extends ObjectRepository public function find($id): ?ChargeKind; /** - * @return ChargeType[] + * @return array */ public function findAll(): array; /** - * @return ChargeType[] + * @return array */ public function findAllActive(): array; - public function findOneByKind(string $kind): ?ChargeKind; - /** - * @return ChargeType[] + * @return array */ public function findAllByType(string $type): array; /** - * @param mixed|null $limit - * @param mixed|null $offset + * @param int|null $limit + * @param int|null $offset * - * @return ChargeType[] + * @return array */ public function findBy(array $criteria, ?array $orderBy = null, ?int $limit = null, ?int $offset = null): array; public function findOneBy(array $criteria): ?ChargeKind; + public function findOneByKind(string $kind): ?ChargeKind; + public function getClassName(): string; } diff --git a/src/Bundle/ChillBudgetBundle/Repository/ChargeRepository.php b/src/Bundle/ChillBudgetBundle/Repository/ChargeRepository.php index b2887bd4d..9b89010dc 100644 --- a/src/Bundle/ChillBudgetBundle/Repository/ChargeRepository.php +++ b/src/Bundle/ChillBudgetBundle/Repository/ChargeRepository.php @@ -11,9 +11,12 @@ declare(strict_types=1); namespace Chill\BudgetBundle\Repository; +use Chill\BudgetBundle\Entity\Charge; +use Chill\PersonBundle\Entity\Household\Household; use Chill\PersonBundle\Entity\Person; use DateTime; -use Doctrine\ORM\EntityRepository; +use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; +use Doctrine\Persistence\ManagerRegistry; /** * ChargeRepository. @@ -21,24 +24,44 @@ use Doctrine\ORM\EntityRepository; * This class was generated by the Doctrine ORM. Add your own custom * repository methods below. */ -class ChargeRepository extends EntityRepository +class ChargeRepository extends ServiceEntityRepository { + public function __construct(ManagerRegistry $registry) + { + parent::__construct($registry, Charge::class); + } + + /** + * @return Charge[] + */ + public function findAllByEntity(Person|Household $entity): array + { + $qb = $this->createQueryBuilder('c'); + + $property = $entity instanceof Person ? 'person' : 'household'; + + $qb->where("c.{$property} = :entity") + ->setParameter('entity', $entity); + + return $qb->getQuery()->getResult(); + } + public function findByEntityAndDate($entity, DateTime $date, $sort = null) { $qb = $this->createQueryBuilder('c'); $entityStr = $entity instanceof Person ? 'person' : 'household'; - $qb->where("c.{$entityStr} = :{$entityStr}") - ->andWhere('c.startDate < :date') - ->andWhere('c.startDate < :date OR c.startDate IS NULL'); + $qb->where("c.{$entityStr} = :entity") + ->andWhere('c.startDate <= :date') + ->andWhere('c.endDate > :date OR c.endDate IS NULL'); if (null !== $sort) { $qb->orderBy($sort); } $qb->setParameters([ - $entityStr => $entity, + 'entity' => $entity, 'date' => $date, ]); diff --git a/src/Bundle/ChillBudgetBundle/Repository/ResourceKindRepository.php b/src/Bundle/ChillBudgetBundle/Repository/ResourceKindRepository.php index 140bb7cc7..1f9f99753 100644 --- a/src/Bundle/ChillBudgetBundle/Repository/ResourceKindRepository.php +++ b/src/Bundle/ChillBudgetBundle/Repository/ResourceKindRepository.php @@ -30,7 +30,7 @@ final class ResourceKindRepository implements ResourceKindRepositoryInterface } /** - * @return ResourceType[] + * @return list */ public function findAll(): array { @@ -38,7 +38,7 @@ final class ResourceKindRepository implements ResourceKindRepositoryInterface } /** - * @return ResourceType[] + * @return list */ public function findAllActive(): array { @@ -49,12 +49,16 @@ final class ResourceKindRepository implements ResourceKindRepositoryInterface ->where($qb->expr()->eq('r.isActive', 'true')) ->orderBy('r.ordering', 'ASC') ->getQuery() - ->getResult() - ; + ->getResult(); + } + + public function findOneByKind(string $kind): ?ResourceKind + { + return $this->repository->findOneBy(['kind' => $kind]) ; } /** - * @return ResourceType[] + * @return list */ public function findAllByType(string $type): array { @@ -65,7 +69,7 @@ final class ResourceKindRepository implements ResourceKindRepositoryInterface * @param mixed|null $limit * @param mixed|null $offset * - * @return ResourceType[] + * @return list */ public function findBy(array $criteria, ?array $orderBy = null, ?int $limit = null, ?int $offset = null): array { @@ -77,11 +81,6 @@ final class ResourceKindRepository implements ResourceKindRepositoryInterface return $this->repository->findOneBy($criteria); } - public function findOneByKind(string $kind): ?ResourceKind - { - return $this->repository->findOneBy(['kind' => $kind]); - } - public function getClassName(): string { return ResourceKind::class; diff --git a/src/Bundle/ChillBudgetBundle/Repository/ResourceKindRepositoryInterface.php b/src/Bundle/ChillBudgetBundle/Repository/ResourceKindRepositoryInterface.php index 658a87a3d..dac46ff35 100644 --- a/src/Bundle/ChillBudgetBundle/Repository/ResourceKindRepositoryInterface.php +++ b/src/Bundle/ChillBudgetBundle/Repository/ResourceKindRepositoryInterface.php @@ -19,25 +19,25 @@ interface ResourceKindRepositoryInterface extends ObjectRepository public function find($id): ?ResourceKind; /** - * @return ResourceType[] + * @return list */ public function findAll(): array; /** - * @return ResourceType[] + * @return list */ public function findAllActive(): array; /** - * @return ResourceType[] + * @return list */ public function findAllByType(string $type): array; /** - * @param mixed|null $limit - * @param mixed|null $offset + * @param int|null $limit + * @param int|null $offset * - * @return ResourceType[] + * @return list */ public function findBy(array $criteria, ?array $orderBy = null, ?int $limit = null, ?int $offset = null): array; diff --git a/src/Bundle/ChillBudgetBundle/Repository/ResourceRepository.php b/src/Bundle/ChillBudgetBundle/Repository/ResourceRepository.php index b3f0a41da..836f13e4b 100644 --- a/src/Bundle/ChillBudgetBundle/Repository/ResourceRepository.php +++ b/src/Bundle/ChillBudgetBundle/Repository/ResourceRepository.php @@ -11,9 +11,13 @@ declare(strict_types=1); namespace Chill\BudgetBundle\Repository; +use Chill\BudgetBundle\Entity\Resource; +use Chill\PersonBundle\Entity\Household\Household; use Chill\PersonBundle\Entity\Person; use DateTime; +use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\ORM\EntityRepository; +use Doctrine\Persistence\ManagerRegistry; /** * ResourceRepository. @@ -21,28 +25,45 @@ use Doctrine\ORM\EntityRepository; * This class was generated by the Doctrine ORM. Add your own custom * repository methods below. */ -class ResourceRepository extends EntityRepository +class ResourceRepository extends ServiceEntityRepository { - public function findByEntityAndDate($entity, DateTime $date, $sort = null) + public function __construct(ManagerRegistry $registry) + { + parent::__construct($registry, Resource::class); + } + + /** + * @return Resource[] + */ + public function findAllByEntity(Person|Household $entity): array + { + $qb = $this->createQueryBuilder('r'); + + $property = $entity instanceof Person ? 'person' : 'household'; + + $qb->where("r.{$property} = :entity") + ->setParameter('entity', $entity); + + return $qb->getQuery()->getResult(); + } + + public function findByEntityAndDate(Person|Household $entity, DateTime $date, $sort = null) { $qb = $this->createQueryBuilder('c'); $entityStr = $entity instanceof Person ? 'person' : 'household'; - $qb->where("c.{$entityStr} = :{$entityStr}") - // TODO: in controller, the budget and charges asked are also for future and actual - //->andWhere('c.startDate < :date') - // TODO: there is a misconception here, the end date must be lower or null. startDate are never null - //->andWhere('c.startDate < :date OR c.startDate IS NULL'); - ; + $qb->where("c.{$entityStr} = :entity") + ->andWhere('c.startDate <= :date') + ->andWhere('c.endDate > :date OR c.endDate IS NULL'); if (null !== $sort) { $qb->orderBy($sort); } $qb->setParameters([ - $entityStr => $entity, - //'date' => $date, + 'entity' => $entity, + 'date' => $date, ]); return $qb->getQuery()->getResult(); diff --git a/src/Bundle/ChillBudgetBundle/Service/Summary/SummaryBudget.php b/src/Bundle/ChillBudgetBundle/Service/Summary/SummaryBudget.php index 2f401f1ec..ad2a014ed 100644 --- a/src/Bundle/ChillBudgetBundle/Service/Summary/SummaryBudget.php +++ b/src/Bundle/ChillBudgetBundle/Service/Summary/SummaryBudget.php @@ -13,9 +13,7 @@ namespace Chill\BudgetBundle\Service\Summary; use Chill\BudgetBundle\Entity\ChargeKind; use Chill\BudgetBundle\Entity\ResourceKind; -use Chill\BudgetBundle\Repository\ChargeKindRepository; use Chill\BudgetBundle\Repository\ChargeKindRepositoryInterface; -use Chill\BudgetBundle\Repository\ResourceKindRepository; use Chill\BudgetBundle\Repository\ResourceKindRepositoryInterface; use Chill\MainBundle\Templating\TranslatableStringHelperInterface; use Chill\PersonBundle\Entity\Household\Household; diff --git a/src/Bundle/ChillBudgetBundle/Templating/BudgetElementTypeRender.php b/src/Bundle/ChillBudgetBundle/Templating/BudgetElementTypeRender.php index 9cc89e2bf..842e6be4e 100644 --- a/src/Bundle/ChillBudgetBundle/Templating/BudgetElementTypeRender.php +++ b/src/Bundle/ChillBudgetBundle/Templating/BudgetElementTypeRender.php @@ -17,6 +17,9 @@ use Chill\MainBundle\Templating\Entity\ChillEntityRenderInterface; use Chill\MainBundle\Templating\TranslatableStringHelperInterface; use Symfony\Component\Templating\EngineInterface; +/** + * @implements ChillEntityRenderInterface + */ final class BudgetElementTypeRender implements ChillEntityRenderInterface { private EngineInterface $engine; diff --git a/src/Bundle/ChillBudgetBundle/Tests/Service/Summary/SummaryBudgetTest.php b/src/Bundle/ChillBudgetBundle/Tests/Service/Summary/SummaryBudgetTest.php index cf8c00efe..7fcda6b11 100644 --- a/src/Bundle/ChillBudgetBundle/Tests/Service/Summary/SummaryBudgetTest.php +++ b/src/Bundle/ChillBudgetBundle/Tests/Service/Summary/SummaryBudgetTest.php @@ -20,12 +20,15 @@ use Chill\MainBundle\Templating\TranslatableStringHelperInterface; use Chill\PersonBundle\Entity\Household\Household; use Chill\PersonBundle\Entity\Household\HouseholdMember; use Chill\PersonBundle\Entity\Person; +use DateTimeImmutable; use Doctrine\ORM\AbstractQuery; use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\Query; use PHPUnit\Framework\TestCase; use Prophecy\Argument; use Prophecy\PhpUnit\ProphecyTrait; +use ReflectionClass; +use RuntimeException; /** * @internal @@ -47,10 +50,9 @@ final class SummaryBudgetTest extends TestCase ], ]); $queryCharges->setParameters(Argument::type('array')) - ->will(function ($args, $query) { + ->will(static function ($args, $query) { return $query; - }) - ; + }); $queryResources = $this->prophesize(AbstractQuery::class); $queryResources->getResult()->willReturn([ @@ -61,23 +63,23 @@ final class SummaryBudgetTest extends TestCase ], ]); $queryResources->setParameters(Argument::type('array')) - ->will(function ($args, $query) { + ->will(static function ($args, $query) { return $query; - }) - ; + }); $em = $this->prophesize(EntityManagerInterface::class); $em->createNativeQuery(Argument::type('string'), Argument::type(Query\ResultSetMapping::class)) - ->will(function ($args) use ($queryResources, $queryCharges) { + ->will(static function ($args) use ($queryResources, $queryCharges) { if (false !== strpos($args[0], 'chill_budget.resource')) { return $queryResources->reveal(); } + if (false !== strpos($args[0], 'chill_budget.charge')) { return $queryCharges->reveal(); } - throw new \RuntimeException('this query does not have a stub counterpart: '.$args[0]); - }) - ; + + throw new RuntimeException('this query does not have a stub counterpart: ' . $args[0]); + }); $chargeRepository = $this->prophesize(ChargeKindRepositoryInterface::class); $chargeRepository->findAll()->willReturn([ @@ -98,24 +100,23 @@ final class SummaryBudgetTest extends TestCase $resourceRepository->findOneByKind('misc')->willReturn($misc); $translatableStringHelper = $this->prophesize(TranslatableStringHelperInterface::class); - $translatableStringHelper->localize(Argument::type('array'))->will(function ($arg) { + $translatableStringHelper->localize(Argument::type('array'))->will(static function ($arg) { return $arg[0]['fr']; }); $person = new Person(); - $personReflection = new \ReflectionClass($person); + $personReflection = new ReflectionClass($person); $personIdReflection = $personReflection->getProperty('id'); $personIdReflection->setAccessible(true); $personIdReflection->setValue($person, 1); $household = new Household(); - $householdReflection = new \ReflectionClass($household); + $householdReflection = new ReflectionClass($household); $householdId = $householdReflection->getProperty('id'); $householdId->setAccessible(true); $householdId->setValue($household, 1); $householdMember = (new HouseholdMember())->setPerson($person) - ->setStartDate(new \DateTimeImmutable('1 month ago')) - ; + ->setStartDate(new DateTimeImmutable('1 month ago')); $household->addMember($householdMember); $summaryBudget = new SummaryBudget( diff --git a/src/Bundle/ChillBudgetBundle/migrations/Version20230209161546.php b/src/Bundle/ChillBudgetBundle/migrations/Version20230209161546.php index 618b0c982..4495db8a7 100644 --- a/src/Bundle/ChillBudgetBundle/migrations/Version20230209161546.php +++ b/src/Bundle/ChillBudgetBundle/migrations/Version20230209161546.php @@ -2,6 +2,13 @@ declare(strict_types=1); +/* + * Chill is a software for social workers + * + * For the full copyright and license information, please view + * the LICENSE file that was distributed with this source code. + */ + namespace Chill\Migrations\Budget; use Doctrine\DBAL\Schema\Schema; @@ -9,6 +16,12 @@ use Doctrine\Migrations\AbstractMigration; final class Version20230209161546 extends AbstractMigration { + public function down(Schema $schema): void + { + $this->addSql('DROP INDEX resource_kind_unique_type_idx'); + $this->addSql('DROP INDEX charge_kind_unique_type_idx'); + } + public function getDescription(): string { return 'Budget: add unique constraint on kind for charge_kind and resource_kind'; @@ -21,10 +34,4 @@ final class Version20230209161546 extends AbstractMigration $this->addSql('CREATE UNIQUE INDEX resource_kind_unique_type_idx ON chill_budget.resource_type (kind);'); $this->addSql('CREATE UNIQUE INDEX charge_kind_unique_type_idx ON chill_budget.charge_type (kind);'); } - - public function down(Schema $schema): void - { - $this->addSql('DROP INDEX resource_kind_unique_type_idx'); - $this->addSql('DROP INDEX charge_kind_unique_type_idx'); - } } diff --git a/src/Bundle/ChillBudgetBundle/migrations/Version20230328155010.php b/src/Bundle/ChillBudgetBundle/migrations/Version20230328155010.php new file mode 100644 index 000000000..ed524940e --- /dev/null +++ b/src/Bundle/ChillBudgetBundle/migrations/Version20230328155010.php @@ -0,0 +1,56 @@ +addSql(<<<'SQL' + WITH type_to_id AS ( + SELECT DISTINCT charge.charge_id AS id, charge.type + FROM chill_budget.charge + WHERE type <> '' + ) + UPDATE chill_budget.charge_type + SET kind = type_to_id.type + FROM type_to_id + WHERE type_to_id.type <> '' AND type_to_id.id = charge_type.id + SQL); + + $this->addSql(<<<'SQL' + WITH type_to_id AS ( + SELECT DISTINCT resource.resource_id AS id, resource.type + FROM chill_budget. resource + WHERE type <> '' + ) + UPDATE chill_budget.resource_type + SET kind = type_to_id.type + FROM type_to_id + WHERE type_to_id.type <> '' AND type_to_id.id = resource_type.id + SQL); + } + + public function down(Schema $schema): void + { + $this->addSql("UPDATE chill_budget.resource_type SET kind=md5(random()::text) WHERE kind = ''"); + $this->addSql("UPDATE chill_budget.charge_type SET kind=md5(random()::text) WHERE kind = ''"); + } +} diff --git a/src/Bundle/ChillBudgetBundle/translations/messages.fr.yml b/src/Bundle/ChillBudgetBundle/translations/messages.fr.yml index b20477150..a5e5490a0 100644 --- a/src/Bundle/ChillBudgetBundle/translations/messages.fr.yml +++ b/src/Bundle/ChillBudgetBundle/translations/messages.fr.yml @@ -29,7 +29,7 @@ End of validity period: Fin de la période de validité Total: Total Create new resource: Créer une nouvelle ressource Create new charge: Créer une nouvelle charge -See person: Voir personne +See person: Voir usagers There isn't any element recorded: Aucun élément enregistré No resources registered: Aucune ressource enregistrée diff --git a/src/Bundle/ChillBudgetBundle/translations/messages.nl.yml b/src/Bundle/ChillBudgetBundle/translations/messages.nl.yml index 5fd21520d..de334f79f 100644 --- a/src/Bundle/ChillBudgetBundle/translations/messages.nl.yml +++ b/src/Bundle/ChillBudgetBundle/translations/messages.nl.yml @@ -2,8 +2,8 @@ Budget: Budget Resource: Inkomsten Charge: Onkosten Budget for %name%: Budget van %name% -Budget for household %household%: Budget van gezin -Current budget household members: Actuele budget van gezinsleden +Budget for household %household%: Budget van huishouden +Current budget household members: Actuele budget van leden huishouden Show budget of %name%: Toon budget van %name% See complete budget: Toon volledige budget Hide budget: Verbergen diff --git a/src/Bundle/ChillCalendarBundle/Controller/CalendarController.php b/src/Bundle/ChillCalendarBundle/Controller/CalendarController.php index 550c6e984..eed693451 100644 --- a/src/Bundle/ChillCalendarBundle/Controller/CalendarController.php +++ b/src/Bundle/ChillCalendarBundle/Controller/CalendarController.php @@ -207,6 +207,7 @@ class CalendarController extends AbstractController 'entityClassName' => Calendar::class, 'entityId' => $entity->getId(), 'template' => $template->getId(), + 'returnPath' => $request->getRequestUri(), ]); } } @@ -377,7 +378,9 @@ class CalendarController extends AbstractController $this->addFlash('success', $this->translator->trans('Success : calendar item created!')); if ($form->get('save_and_upload_doc')->isClicked()) { - return $this->redirectToRoute('chill_calendar_calendardoc_new', ['id' => $entity->getId()]); + return $this->redirectToRoute('chill_calendar_calendardoc_new', [ + 'id' => $entity->getId() + ]); } foreach ($templates as $template) { @@ -386,6 +389,7 @@ class CalendarController extends AbstractController 'entityClassName' => Calendar::class, 'entityId' => $entity->getId(), 'template' => $template->getId(), + 'returnPath' => $this->generateUrl('chill_calendar_calendar_edit', ['id' => $entity->getId()]), ]); } } @@ -526,14 +530,20 @@ class CalendarController extends AbstractController 'comment' => $calendar->getComment()->getComment(), ]; - return $this->redirectToRoute( - 'chill_activity_activity_new', - [ - 'accompanying_period_id' => $calendar->getAccompanyingPeriod()->getId(), - 'activityData' => $activityData, - 'returnPath' => $request->query->get('returnPath', null), - ] - ); + $routeParams = [ + 'activityData' => $activityData, + 'returnPath' => $request->query->get('returnPath', null), + ]; + + if ($calendar->getContext() === 'accompanying_period') { + $routeParams['accompanying_period_id'] = $calendar->getAccompanyingPeriod()->getId(); + } elseif ($calendar->getContext() === 'person') { + $routeParams['person_id'] = $calendar->getPerson()->getId(); + } else { + throw new RuntimeException('context not found for this calendar'); + } + + return $this->redirectToRoute('chill_activity_activity_new', $routeParams); } private function buildListFilterOrder(): FilterOrderHelper @@ -544,21 +554,6 @@ class CalendarController extends AbstractController return $filterOrder->build(); } - private function buildParamsToUrl(?User $user, ?AccompanyingPeriod $accompanyingPeriod): array - { - $params = []; - - if (null !== $user) { - $params['user_id'] = $user->getId(); - } - - if (null !== $accompanyingPeriod) { - $params['id'] = $accompanyingPeriod->getId(); - } - - return $params; - } - /** * Creates a form to delete a Calendar entity by id. */ diff --git a/src/Bundle/ChillCalendarBundle/Controller/CalendarDocController.php b/src/Bundle/ChillCalendarBundle/Controller/CalendarDocController.php index 74f8d93e9..d02e55f32 100644 --- a/src/Bundle/ChillCalendarBundle/Controller/CalendarDocController.php +++ b/src/Bundle/ChillCalendarBundle/Controller/CalendarDocController.php @@ -145,6 +145,9 @@ class CalendarDocController $returnParams = ['id' => $calendarDoc->getCalendar()->getPerson()->getId()]; break; + + default: + throw new \LogicException(sprintf("This context '%s' is not supported", $calendarDoc->getCalendar()->getContext())); } $form = $this->formFactory->createBuilder() diff --git a/src/Bundle/ChillCalendarBundle/Entity/Calendar.php b/src/Bundle/ChillCalendarBundle/Entity/Calendar.php index 0f112cf36..d7f38adf0 100644 --- a/src/Bundle/ChillCalendarBundle/Entity/Calendar.php +++ b/src/Bundle/ChillCalendarBundle/Entity/Calendar.php @@ -29,6 +29,7 @@ use DateTimeImmutable; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use Doctrine\Common\Collections\Criteria; +use Doctrine\Common\Collections\ReadableCollection; use Doctrine\ORM\Mapping as ORM; use LogicException; use Symfony\Component\Serializer\Annotation as Serializer; @@ -92,6 +93,7 @@ class Calendar implements TrackCreationInterface, TrackUpdateInterface, HasCente /** * @ORM\ManyToOne(targetEntity="Chill\PersonBundle\Entity\AccompanyingPeriod", inversedBy="calendars") + * @Serializer\Groups({"calendar:read", "read"}) */ private ?AccompanyingPeriod $accompanyingPeriod = null; @@ -507,12 +509,14 @@ class Calendar implements TrackCreationInterface, TrackUpdateInterface, HasCente } /** - * @return Collection|User[] + * @return ReadableCollection<(int|string), User> * @Serializer\Groups({"calendar:read", "read"}) */ - public function getUsers(): Collection + public function getUsers(): ReadableCollection { - return $this->getInvites()->map(static function (Invite $i) { return $i->getUser(); }); + return $this->getInvites()->map(static function (Invite $i) { + return $i->getUser(); + }); } public function hasCalendarRange(): bool @@ -597,7 +601,9 @@ class Calendar implements TrackCreationInterface, TrackUpdateInterface, HasCente } $invite = $this->invites - ->filter(static function (Invite $invite) use ($user) { return $invite->getUser() === $user; }) + ->filter(static function (Invite $invite) use ($user) { + return $invite->getUser() === $user; + }) ->first(); $this->removeInvite($invite); diff --git a/src/Bundle/ChillCalendarBundle/Export/Aggregator/UrgencyAggregator.php b/src/Bundle/ChillCalendarBundle/Export/Aggregator/UrgencyAggregator.php index a80653441..ad5910461 100644 --- a/src/Bundle/ChillCalendarBundle/Export/Aggregator/UrgencyAggregator.php +++ b/src/Bundle/ChillCalendarBundle/Export/Aggregator/UrgencyAggregator.php @@ -44,14 +44,7 @@ class UrgencyAggregator implements AggregatorInterface public function alterQuery(QueryBuilder $qb, $data) { $qb->addSelect('cal.urgent AS urgency_aggregator'); - - $groupBy = $qb->getDQLPart('groupBy'); - - if (!empty($groupBy)) { - $qb->addGroupBy('urgency_aggregator'); - } else { - $qb->groupBy('urgency_aggregator'); - } + $qb->addGroupBy('urgency_aggregator'); } public function applyOn(): string diff --git a/src/Bundle/ChillCalendarBundle/Export/Export/CountCalendars.php b/src/Bundle/ChillCalendarBundle/Export/Export/CountCalendars.php index 06d6defca..f3bf79547 100644 --- a/src/Bundle/ChillCalendarBundle/Export/Export/CountCalendars.php +++ b/src/Bundle/ChillCalendarBundle/Export/Export/CountCalendars.php @@ -52,7 +52,7 @@ class CountCalendars implements ExportInterface, GroupedExportInterface return 'Exports of calendar'; } - public function getLabels($key, array $values, $data): Closure + public function getLabels($key, array $values, $data) { if ('export_result' !== $key) { throw new LogicException("the key {$key} is not used by this export"); diff --git a/src/Bundle/ChillCalendarBundle/Export/Filter/CalendarRangeFilter.php b/src/Bundle/ChillCalendarBundle/Export/Filter/CalendarRangeFilter.php index fde867b64..d6c38e163 100644 --- a/src/Bundle/ChillCalendarBundle/Export/Filter/CalendarRangeFilter.php +++ b/src/Bundle/ChillCalendarBundle/Export/Filter/CalendarRangeFilter.php @@ -49,23 +49,11 @@ class CalendarRangeFilter implements FilterInterface public function alterQuery(QueryBuilder $qb, $data) { - $where = $qb->getDQLPart('where'); - - dump($data); - - if ($data['hasCalendarRange']) { - $clause = $qb->expr()->isNotNull('cal.calendarRange'); + if (null !== $data['hasCalendarRange']) { + $qb->andWhere($qb->expr()->isNotNull('cal.calendarRange')); } else { - $clause = $qb->expr()->isNull('cal.calendarRange'); + $qb->andWhere($qb->expr()->isNull('cal.calendarRange')); } - - if ($where instanceof Andx) { - $where->add($clause); - } else { - $where = $qb->expr()->andX($clause); - } - - $qb->add('where', $where); } public function applyOn(): string @@ -87,6 +75,8 @@ class CalendarRangeFilter implements FilterInterface public function describeAction($data, $format = 'string'): array { + $choice = ''; + foreach (self::CHOICES as $k => $v) { if ($v === $data['hasCalendarRange']) { $choice = $k; diff --git a/src/Bundle/ChillCalendarBundle/Form/CalendarDocEditType.php b/src/Bundle/ChillCalendarBundle/Form/CalendarDocEditType.php index 26a9d59e2..34a501028 100644 --- a/src/Bundle/ChillCalendarBundle/Form/CalendarDocEditType.php +++ b/src/Bundle/ChillCalendarBundle/Form/CalendarDocEditType.php @@ -26,9 +26,6 @@ class CalendarDocEditType extends AbstractType ->add('title', TextType::class, [ 'label' => 'chill_calendar.Document title', 'required' => true, - ]) - ->add('doc', StoredObjectType::class, [ - 'label' => 'chill_calendar.Document object', ]); } diff --git a/src/Bundle/ChillCalendarBundle/Messenger/Doctrine/CalendarEntityListener.php b/src/Bundle/ChillCalendarBundle/Messenger/Doctrine/CalendarEntityListener.php index 94ba4974c..f97cbc7b2 100644 --- a/src/Bundle/ChillCalendarBundle/Messenger/Doctrine/CalendarEntityListener.php +++ b/src/Bundle/ChillCalendarBundle/Messenger/Doctrine/CalendarEntityListener.php @@ -22,6 +22,9 @@ use Chill\CalendarBundle\Entity\Calendar; use Chill\CalendarBundle\Messenger\Message\CalendarMessage; use Chill\CalendarBundle\Messenger\Message\CalendarRemovedMessage; use Doctrine\ORM\Event\LifecycleEventArgs; +use Doctrine\ORM\Event\PostPersistEventArgs; +use Doctrine\ORM\Event\PostRemoveEventArgs; +use Doctrine\ORM\Event\PostUpdateEventArgs; use Symfony\Component\Messenger\MessageBusInterface; use Symfony\Component\Security\Core\Security; @@ -37,7 +40,7 @@ class CalendarEntityListener $this->security = $security; } - public function postPersist(Calendar $calendar, LifecycleEventArgs $args): void + public function postPersist(Calendar $calendar, PostPersistEventArgs $args): void { if (!$calendar->preventEnqueueChanges) { $this->messageBus->dispatch( @@ -50,7 +53,7 @@ class CalendarEntityListener } } - public function postRemove(Calendar $calendar, LifecycleEventArgs $args): void + public function postRemove(Calendar $calendar, PostRemoveEventArgs $args): void { if (!$calendar->preventEnqueueChanges) { $this->messageBus->dispatch( @@ -62,7 +65,7 @@ class CalendarEntityListener } } - public function postUpdate(Calendar $calendar, LifecycleEventArgs $args): void + public function postUpdate(Calendar $calendar, PostUpdateEventArgs $args): void { if (!$calendar->preventEnqueueChanges) { $this->messageBus->dispatch( diff --git a/src/Bundle/ChillCalendarBundle/Messenger/Doctrine/CalendarRangeEntityListener.php b/src/Bundle/ChillCalendarBundle/Messenger/Doctrine/CalendarRangeEntityListener.php index 7628c7af4..4df548277 100644 --- a/src/Bundle/ChillCalendarBundle/Messenger/Doctrine/CalendarRangeEntityListener.php +++ b/src/Bundle/ChillCalendarBundle/Messenger/Doctrine/CalendarRangeEntityListener.php @@ -22,6 +22,9 @@ use Chill\CalendarBundle\Entity\CalendarRange; use Chill\CalendarBundle\Messenger\Message\CalendarRangeMessage; use Chill\CalendarBundle\Messenger\Message\CalendarRangeRemovedMessage; use Doctrine\ORM\Event\LifecycleEventArgs; +use Doctrine\ORM\Event\PostPersistEventArgs; +use Doctrine\ORM\Event\PostRemoveEventArgs; +use Doctrine\ORM\Event\PostUpdateEventArgs; use Symfony\Component\Messenger\MessageBusInterface; use Symfony\Component\Security\Core\Security; @@ -37,7 +40,7 @@ class CalendarRangeEntityListener $this->security = $security; } - public function postPersist(CalendarRange $calendarRange, LifecycleEventArgs $eventArgs): void + public function postPersist(CalendarRange $calendarRange, PostPersistEventArgs $eventArgs): void { if (!$calendarRange->preventEnqueueChanges) { $this->messageBus->dispatch( @@ -50,7 +53,7 @@ class CalendarRangeEntityListener } } - public function postRemove(CalendarRange $calendarRange, LifecycleEventArgs $eventArgs): void + public function postRemove(CalendarRange $calendarRange, PostRemoveEventArgs $eventArgs): void { if (!$calendarRange->preventEnqueueChanges) { $this->messageBus->dispatch( @@ -62,7 +65,7 @@ class CalendarRangeEntityListener } } - public function postUpdate(CalendarRange $calendarRange, LifecycleEventArgs $eventArgs): void + public function postUpdate(CalendarRange $calendarRange, PostUpdateEventArgs $eventArgs): void { if (!$calendarRange->preventEnqueueChanges) { $this->messageBus->dispatch( diff --git a/src/Bundle/ChillCalendarBundle/Messenger/Handler/CalendarToRemoteHandler.php b/src/Bundle/ChillCalendarBundle/Messenger/Handler/CalendarToRemoteHandler.php index 361fd33c2..9bcc0c434 100644 --- a/src/Bundle/ChillCalendarBundle/Messenger/Handler/CalendarToRemoteHandler.php +++ b/src/Bundle/ChillCalendarBundle/Messenger/Handler/CalendarToRemoteHandler.php @@ -89,10 +89,14 @@ class CalendarToRemoteHandler implements MessageHandlerInterface $newInvites = array_filter( array_map( - function ($id) { return $this->inviteRepository->find($id); }, + function ($id) { + return $this->inviteRepository->find($id); + }, $calendarMessage->getNewInvitesIds(), ), - static function (?Invite $invite) { return null !== $invite; } + static function (?Invite $invite) { + return null !== $invite; + } ); $this->calendarConnector->syncCalendar( diff --git a/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraph/MapCalendarToUser.php b/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraph/MapCalendarToUser.php index 504d48ffc..563bd3a38 100644 --- a/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraph/MapCalendarToUser.php +++ b/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraph/MapCalendarToUser.php @@ -22,6 +22,7 @@ use Chill\MainBundle\Entity\User; use DateTimeImmutable; use LogicException; use Psr\Log\LoggerInterface; +use Symfony\Contracts\HttpClient\Exception\ClientExceptionInterface; use Symfony\Contracts\HttpClient\HttpClientInterface; use function array_key_exists; @@ -74,9 +75,18 @@ class MapCalendarToUser public function getDefaultUserCalendar(string $idOrUserPrincipalName): ?array { - $value = $this->machineHttpClient->request('GET', "users/{$idOrUserPrincipalName}/calendars", [ - 'query' => ['$filter' => 'isDefaultCalendar eq true'], - ])->toArray()['value']; + try { + $value = $this->machineHttpClient->request('GET', "users/{$idOrUserPrincipalName}/calendars", [ + 'query' => ['$filter' => 'isDefaultCalendar eq true'], + ])->toArray()['value']; + } catch (ClientExceptionInterface $e) { + $this->logger->error('[MapCalendarToUser] Error while listing calendars for a user', [ + 'http_status_code' => $e->getResponse()->getStatusCode(), + 'id_user' => $idOrUserPrincipalName, + ]); + + return null; + } return $value[0] ?? null; } diff --git a/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraph/RemoteToLocalSync/CalendarSyncer.php b/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraph/RemoteToLocalSync/CalendarSyncer.php index 984e77d87..c5a640f32 100644 --- a/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraph/RemoteToLocalSync/CalendarSyncer.php +++ b/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraph/RemoteToLocalSync/CalendarSyncer.php @@ -110,11 +110,11 @@ class CalendarSyncer $endDate = RemoteEventConverter::convertStringDateWithoutTimezone($new['end']['dateTime']); if ($startDate->getTimestamp() !== $calendar->getStartDate()->getTimestamp()) { - $calendar->setStartDate($startDate)->setStatus(Calendar::STATUS_MOVED); + $calendar->setStartDate($startDate); } if ($endDate->getTimestamp() !== $calendar->getEndDate()->getTimestamp()) { - $calendar->setEndDate($endDate)->setStatus(Calendar::STATUS_MOVED); + $calendar->setEndDate($endDate); } $calendar diff --git a/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraphRemoteCalendarConnector.php b/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraphRemoteCalendarConnector.php index c376f9680..0454bae69 100644 --- a/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraphRemoteCalendarConnector.php +++ b/src/Bundle/ChillCalendarBundle/RemoteCalendar/Connector/MSGraphRemoteCalendarConnector.php @@ -34,6 +34,7 @@ use Psr\Log\LoggerInterface; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; +use Symfony\Component\Security\Core\Security; use Symfony\Contracts\HttpClient\Exception\ClientExceptionInterface; use Symfony\Contracts\HttpClient\HttpClientInterface; use Symfony\Contracts\Translation\TranslatorInterface; @@ -64,6 +65,8 @@ class MSGraphRemoteCalendarConnector implements RemoteCalendarConnectorInterface private OnBehalfOfUserHttpClient $userHttpClient; + private Security $security; + public function __construct( CalendarRepository $calendarRepository, CalendarRangeRepository $calendarRangeRepository, @@ -74,7 +77,8 @@ class MSGraphRemoteCalendarConnector implements RemoteCalendarConnectorInterface OnBehalfOfUserHttpClient $userHttpClient, RemoteEventConverter $remoteEventConverter, TranslatorInterface $translator, - UrlGeneratorInterface $urlGenerator + UrlGeneratorInterface $urlGenerator, + Security $security ) { $this->calendarRepository = $calendarRepository; $this->calendarRangeRepository = $calendarRangeRepository; @@ -86,6 +90,7 @@ class MSGraphRemoteCalendarConnector implements RemoteCalendarConnectorInterface $this->translator = $translator; $this->urlGenerator = $urlGenerator; $this->userHttpClient = $userHttpClient; + $this->security = $security; } public function countEventsForUser(User $user, DateTimeImmutable $startDate, DateTimeImmutable $endDate): int @@ -133,6 +138,24 @@ class MSGraphRemoteCalendarConnector implements RemoteCalendarConnectorInterface public function isReady(): bool { + $user = $this->security->getUser(); + + if (!$user instanceof User) { + // this is not a user from chill. This is not the role of this class to + // restrict access, so we will just say that we do not have to do anything more + // here... + return true; + } + + if (null === $this->mapCalendarToUser->getUserId($user)) { + // this user is not mapped with remote calendar. The user will have to wait for + // the next calendar subscription iteration + $this->logger->debug('mark user ready for msgraph calendar as he does not have any mapping', [ + 'userId' => $user->getId(), + ]); + return true; + } + return $this->tokenStorage->hasToken(); } @@ -167,7 +190,9 @@ class MSGraphRemoteCalendarConnector implements RemoteCalendarConnectorInterface ] )->toArray(); - $ids = array_map(static function ($item) { return $item['id']; }, $bareEvents['value']); + $ids = array_map(static function ($item) { + return $item['id']; + }, $bareEvents['value']); $existingIdsInRange = $this->calendarRangeRepository->findRemoteIdsPresent($ids); $existingIdsInCalendar = $this->calendarRepository->findRemoteIdsPresent($ids); diff --git a/src/Bundle/ChillCalendarBundle/Repository/CalendarACLAwareRepository.php b/src/Bundle/ChillCalendarBundle/Repository/CalendarACLAwareRepository.php index 6861df341..7c6ef4e13 100644 --- a/src/Bundle/ChillCalendarBundle/Repository/CalendarACLAwareRepository.php +++ b/src/Bundle/ChillCalendarBundle/Repository/CalendarACLAwareRepository.php @@ -215,7 +215,7 @@ class CalendarACLAwareRepository implements CalendarACLAwareRepositoryInterface $qb ->where( $qb->expr()->orX( - // the calendar where the person is the main person: + // the calendar where the person is the main person: $qb->expr()->eq('c.person', ':person'), // when the calendar is in a reachable period, and contains person $qb->expr()->andX( diff --git a/src/Bundle/ChillCalendarBundle/Resources/public/types.ts b/src/Bundle/ChillCalendarBundle/Resources/public/types.ts index ebc7ab7be..c18cfea13 100644 --- a/src/Bundle/ChillCalendarBundle/Resources/public/types.ts +++ b/src/Bundle/ChillCalendarBundle/Resources/public/types.ts @@ -1,4 +1,4 @@ -import {EventInput} from '@fullcalendar/vue3'; +import {EventInput} from '@fullcalendar/core'; import {DateTime, Location, User, UserAssociatedInterface} from '../../../ChillMainBundle/Resources/public/types' ; import {Person} from "../../../ChillPersonBundle/Resources/public/types"; diff --git a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/Calendar/App.vue b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/Calendar/App.vue index 472bb525b..e09175a4b 100644 --- a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/Calendar/App.vue +++ b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/Calendar/App.vue @@ -15,6 +15,7 @@ :picked="null !== this.$store.getters.getMainUser ? [this.$store.getters.getMainUser] : []" :removableIfSet="false" :displayPicked="false" + :suggested="this.suggestedUsers" @addNewEntity="setMainUser" >
    @@ -116,7 +117,6 @@ - - + \ No newline at end of file diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/HomepageWidget/MyWorkflowsTable.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/HomepageWidget/MyWorkflowsTable.vue new file mode 100644 index 000000000..f98d7a5cb --- /dev/null +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/HomepageWidget/MyWorkflowsTable.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/HomepageWidget/js/i18n.js b/src/Bundle/ChillMainBundle/Resources/public/vuejs/HomepageWidget/js/i18n.js index edc781087..697074671 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/HomepageWidget/js/i18n.js +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/HomepageWidget/js/i18n.js @@ -24,7 +24,8 @@ const appMessages = { }, my_workflows: { tab: "Mes workflows", - description: "Liste des workflows en attente d'une action." + description: "Liste des workflows en attente d'une action.", + description_cc: "Liste des workflows dont je suis en copie." }, opening_date: "Date d'ouverture", social_issues: "Problématiques sociales", diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/HomepageWidget/js/store.js b/src/Bundle/ChillMainBundle/Resources/public/vuejs/HomepageWidget/js/store.js index 44127da1c..088cb93b7 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/HomepageWidget/js/store.js +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/HomepageWidget/js/store.js @@ -22,6 +22,7 @@ const store = createStore({ accompanyingCourses: {}, notifications: {}, workflows: {}, + workflowsCc: {}, errorMsg: [], loading: false }, @@ -87,6 +88,9 @@ const store = createStore({ addWorkflows(state, workflows) { state.workflows = workflows; }, + addWorkflowsCc(state, workflows) { + state.workflowsCc = workflows; + }, setLoading(state, bool) { state.loading = bool; }, @@ -195,17 +199,23 @@ const store = createStore({ case 'MyWorkflows': if (!getters.isWorflowsLoaded) { commit('setLoading', true); - const url = '/api/1.0/main/workflow/my'; - makeFetch('GET', url) - .then((response) => { - console.log('workflows', response) - commit('addWorkflows', response); - commit('setLoading', false); - }) - .catch((error) => { - commit('catchError', error); - throw error; - }); + makeFetch('GET', '/api/1.0/main/workflow/my') + .then((response) => { + commit('addWorkflows', response); + makeFetch('GET', '/api/1.0/main/workflow/my-cc') + .then((response) => { + commit('addWorkflowsCc', response); + commit('setLoading', false); + }) + .catch((error) => { + commit('catchError', error); + throw error; + }); + }) + .catch((error) => { + commit('catchError', error); + throw error; + }); } break; default: diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/OnTheFly/components/OnTheFly.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/OnTheFly/components/OnTheFly.vue index 6dcca0d8a..28a51c4e6 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/OnTheFly/components/OnTheFly.vue +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/OnTheFly/components/OnTheFly.vue @@ -233,7 +233,7 @@ export default { // console.log('data original', data); data.parent = {type: "thirdparty", id: this.parent.id}; data.civility = data.civility !== null ? {type: 'chill_main_civility', id: data.civility.id} : null; - data.profession = data.profession !== null ? {type: 'third_party_profession', id: data.profession.id} : null; + data.profession = data.profession !== '' ? data.profession : ''; } else { type = this.$refs.castNew.radioType; data = this.$refs.castNew.castDataByType(); @@ -241,8 +241,8 @@ export default { if (typeof data.civility !== 'undefined' && null !== data.civility) { data.civility = data.civility !== null ? {type: 'chill_main_civility', id: data.civility.id} : null; } - if (typeof data.profession !== 'undefined' && null !== data.profession) { - data.profession = data.profession !== null ? {type: 'third_party_profession', id: data.profession.id} : null; + if (typeof data.profession !== 'undefined' && '' !== data.profession) { + data.profession = data.profession !== '' ? data.profession : ''; } // console.log('onthefly data', data); } diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/PickEntity/PickEntity.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/PickEntity/PickEntity.vue index e121ca950..0a39718e2 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/PickEntity/PickEntity.vue +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/PickEntity/PickEntity.vue @@ -17,6 +17,9 @@ +
      +
    • {{ s.text }}
    • +
    diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/AddressDetails/AddressDetailsButton.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/AddressDetails/AddressDetailsButton.vue new file mode 100644 index 000000000..7e060de4c --- /dev/null +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/AddressDetails/AddressDetailsButton.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/AddressDetails/AddressDetailsContent.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/AddressDetails/AddressDetailsContent.vue new file mode 100644 index 000000000..3f6495b0a --- /dev/null +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/AddressDetails/AddressDetailsContent.vue @@ -0,0 +1,33 @@ + + + + + diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/AddressDetails/AddressModal.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/AddressDetails/AddressModal.vue new file mode 100644 index 000000000..6b341d861 --- /dev/null +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/AddressDetails/AddressModal.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/AddressDetails/Parts/AddressDetailsGeographicalLayers.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/AddressDetails/Parts/AddressDetailsGeographicalLayers.vue new file mode 100644 index 000000000..179bed113 --- /dev/null +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/AddressDetails/Parts/AddressDetailsGeographicalLayers.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/AddressDetails/Parts/AddressDetailsMap.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/AddressDetails/Parts/AddressDetailsMap.vue new file mode 100644 index 000000000..fd652a5f9 --- /dev/null +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/AddressDetails/Parts/AddressDetailsMap.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/AddressDetails/Parts/AddressDetailsRefMatching.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/AddressDetails/Parts/AddressDetailsRefMatching.vue new file mode 100644 index 000000000..cbeb9e9e9 --- /dev/null +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/AddressDetails/Parts/AddressDetailsRefMatching.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/Entity/AddressRenderBox.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/Entity/AddressRenderBox.vue index 2e88bc1cb..14a376856 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/Entity/AddressRenderBox.vue +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/Entity/AddressRenderBox.vue @@ -11,17 +11,18 @@

    {{ l }}

    +

    -

    {{ address.text }}

    -

    {{ address.postcode.code }} {{ address.postcode.name }}

    -

    {{ address.country.name.fr }}

    @@ -35,11 +36,12 @@

    {{ l }}

    +

    - {{ address.text }} + {{ address.text }}

    @@ -65,11 +67,13 @@ diff --git a/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourseWork/_item.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourseWork/_item.html.twig index 8ab7a932c..001ac1661 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourseWork/_item.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourseWork/_item.html.twig @@ -3,6 +3,7 @@ # - itemBlocClass: [uniq|colored|extended] # - displayContent: [short|long] default: short # - displayAction: [true|false] default: false +# - displayFontSmall: [true|false] default: false #}
    @@ -83,7 +84,7 @@ {%- if w.referrers|length > 0 -%} {% for u in w.referrers %} - {{ u|chill_entity_render_box }} + {{ u|chill_entity_render_box }} {% if not loop.last %}, {% endif %} {% endfor %} @@ -110,7 +111,7 @@
    {% if displayContent is not defined or displayContent == 'short' %} -
    +
    {% include 'ChillPersonBundle:AccompanyingCourseWork:_objectifs_results_evaluations.html.twig' with { 'displayContent': displayContent } %} diff --git a/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourseWork/_objectifs_results_evaluations.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourseWork/_objectifs_results_evaluations.html.twig index 63e4ff638..f4198a5c7 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourseWork/_objectifs_results_evaluations.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourseWork/_objectifs_results_evaluations.html.twig @@ -118,6 +118,18 @@ {% endif %} {% endif %} + + {% if e.timeSpent is not null and e.timeSpent > 0 %} +
  • + {% set minutes = (e.timeSpent / 60) %} + {{ 'accompanying_course_work.timeSpent'|trans ~ ' : ' }} {{ 'duration.minute'|trans({ '{m}' : minutes }) }} +
  • + {% elseif displayContent is defined and displayContent == 'long' %} +
  • + {{ 'accompanying_course_work.timeSpent'|trans ~ ' : ' }} + {{ 'Not given'|trans }} +
  • + {% endif %} @@ -130,27 +142,20 @@ {% import "@ChillDocStore/Macro/macro.html.twig" as m %} {% import "@ChillDocStore/Macro/macro_mimeicon.html.twig" as mm %} -
    - {% if e.documents|length > 0 %} - + {% if e.documents|length > 0 %} + {% for d in e.documents %} -
    -
    - {{ d.title }} -
    -
    - {{ mm.mimeIcon(d.storedObject.type) }} -
    -
    - {{ d.storedObject|chill_document_button_group(d.title, is_granted('CHILL_MAIN_ACCOMPANYING_PERIOD_WORK_UPDATE', w), {'small': true}) }} -
    -
    + + + + + {% endfor %} +
    {{ d.title }}{{ mm.mimeIcon(d.storedObject.type) }}{{ d.storedObject|chill_document_button_group(d.title, is_granted('CHILL_MAIN_ACCOMPANYING_PERIOD_WORK_UPDATE', w), {'small': true}) }}
    + {% else %} + {{ 'No document found'|trans }} + {% endif %} - {% else %} - {{ 'No document found'|trans }} - {% endif %} -
    {% endif %} diff --git a/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourseWork/index.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourseWork/index.html.twig index b12466e18..9214bd30d 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourseWork/index.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourseWork/index.html.twig @@ -25,6 +25,7 @@ {% include '@ChillPerson/AccompanyingCourseWork/_item.html.twig' with { 'displayAction': true, 'displayContent': 'short', + 'displayFontSmall': true, 'itemBlocClass': '' } %} {% endfor %} diff --git a/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourseWork/list_recent_by_accompanying_period.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourseWork/list_recent_by_accompanying_period.html.twig index 51c9bf926..92b2e3920 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourseWork/list_recent_by_accompanying_period.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingCourseWork/list_recent_by_accompanying_period.html.twig @@ -33,8 +33,10 @@ {{ 'Referrers'|trans ~ ' : ' }} {% for u in w.referrers %} {{ u|chill_entity_render_box }} - {% if not loop.last %}, {% endif %} {% endfor %} + {% if w.referrers|length == 0 %} + {{ 'Not given'|trans }} + {% endif %} {% endif %}
  • diff --git a/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingPeriod/notification_location_user_on_period_has_moved.fr.txt.twig b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingPeriod/notification_location_user_on_period_has_moved.fr.txt.twig index e4509d78a..df932067c 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingPeriod/notification_location_user_on_period_has_moved.fr.txt.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/AccompanyingPeriod/notification_location_user_on_period_has_moved.fr.txt.twig @@ -3,6 +3,7 @@ #}{{ period.user.label }}, L'usager {{ oldPersonLocation|chill_entity_render_string }} a déménagé. +{{ app.user|chill_entity_render_string }} a enregistré ce déménagement. Son adresse était utilisée pour localiser le parcours n°{{ period.id }}, dont vous êtes le référent. diff --git a/src/Bundle/ChillPersonBundle/Resources/views/Person/list_with_period.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/Person/list_with_period.html.twig index c0af2efc3..4497b8226 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/Person/list_with_period.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/Person/list_with_period.html.twig @@ -69,7 +69,7 @@
  • - {{ acp.user|chill_entity_render_box }} + {{ acp.user|chill_entity_render_box }}
    diff --git a/src/Bundle/ChillPersonBundle/Resources/views/PersonDuplicate/_sidepane.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/PersonDuplicate/_sidepane.html.twig index f7fef7f93..660fff7a6 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/PersonDuplicate/_sidepane.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/PersonDuplicate/_sidepane.html.twig @@ -36,7 +36,7 @@ {%- macro links(person, options) -%}
      -
    • {{ person.counters.nb_activity }} {{ (person.counters.nb_activity > 1)? 'activités' : 'activité' }}
    • +
    • {{ person.counters.nb_activity }} {{ (person.counters.nb_activity > 1)? 'échanges' : 'échange' }}
    • {{ person.counters.nb_task }} {{ (person.counters.nb_task > 1)? 'tâches' : 'tâche' }}
    • {{ person.counters.nb_document }} {{ (person.counters.nb_document > 1)? 'documents' : 'document' }}
    • {{ person.counters.nb_event }} {{ (person.counters.nb_event > 1)? 'événements' : 'événement' }}
    • diff --git a/src/Bundle/ChillPersonBundle/Resources/views/Workflow/_evaluation.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/Workflow/_evaluation.html.twig index ca95760dd..b49455cfd 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/Workflow/_evaluation.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/Workflow/_evaluation.html.twig @@ -21,7 +21,7 @@
      - +
      diff --git a/src/Bundle/ChillPersonBundle/Resources/views/Workflow/_evaluation_document.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/Workflow/_evaluation_document.html.twig index e5d8f9c9a..691a903ab 100644 --- a/src/Bundle/ChillPersonBundle/Resources/views/Workflow/_evaluation_document.html.twig +++ b/src/Bundle/ChillPersonBundle/Resources/views/Workflow/_evaluation_document.html.twig @@ -49,7 +49,7 @@
      - +
      diff --git a/src/Bundle/ChillPersonBundle/Search/PersonSearch.php b/src/Bundle/ChillPersonBundle/Search/PersonSearch.php index 83b2cff69..7cd1849a3 100644 --- a/src/Bundle/ChillPersonBundle/Search/PersonSearch.php +++ b/src/Bundle/ChillPersonBundle/Search/PersonSearch.php @@ -26,6 +26,7 @@ use Chill\PersonBundle\Repository\PersonACLAwareRepositoryInterface; use DateTime; use Exception; use libphonenumber\PhoneNumber; +use libphonenumber\PhoneNumberUtil; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Templating\EngineInterface; @@ -115,23 +116,23 @@ class PersonSearch extends AbstractSearch implements HasAdvancedSearchFormInterf { $string = '@person '; - $string .= $data['_default'] ? '' : $data['_default'] . ' '; + $string .= !isset($data['_default']) ? '' : $data['_default'] . ' '; foreach (['firstname', 'lastname', 'gender', 'city'] as $key) { - $string .= $data[$key] ? '' : $key . ':' . + $string .= !isset($data[$key]) ? '' : $key . ':' . // add quote if contains spaces (strpos($data[$key], ' ') !== false ? '"' . $data[$key] . '"' : $data[$key]) . ' '; } foreach (['birthdate', 'birthdate-before', 'birthdate-after'] as $key) { - $string .= $data[$key] ? + $string .= !isset($data[$key]) ? '' : $key . ':' . $data[$key]->format('Y-m-d') . ' '; } - $string .= $data['phonenumber'] ? '' : 'phonenumber:' . $data['phonenumber']->getNationalNumber(); + $string .= !isset($data['phonenumber']) ? '' : 'phonenumber:' . $data['phonenumber']->getNationalNumber(); return $string; } @@ -162,12 +163,12 @@ class PersonSearch extends AbstractSearch implements HasAdvancedSearchFormInterf $phonenumber = new PhoneNumber(); $phonenumber->setNationalNumber($terms['phonenumber']); } catch (Exception $ex) { - throw new ParsingException('The date for phonenumber is ' + throw new ParsingException("The data for phonenumber is " . 'not parsable', 0, $ex); } - } - $data['phonenumber'] = $phonenumber ?? null; + $data['phonenumber'] = $phonenumber; + } return $data; } @@ -202,15 +203,6 @@ class PersonSearch extends AbstractSearch implements HasAdvancedSearchFormInterf return true; } - /** - * (non-PHPdoc). - * - * @see \Chill\MainBundle\Search\SearchInterface::renderResult() - * - * @param mixed $start - * @param mixed $limit - * @param mixed $format - */ public function renderResult(array $terms, $start = 0, $limit = 50, array $options = [], $format = 'html') { $terms = $this->findAdditionnalInDefault($terms); @@ -235,15 +227,13 @@ class PersonSearch extends AbstractSearch implements HasAdvancedSearchFormInterf ] ); } - - if ('json' === $format) { - return [ - 'results' => $this->search($terms, $start, $limit, array_merge($options, ['simplify' => true])), - 'pagination' => [ - 'more' => $paginator->hasNextPage(), - ], - ]; - } + // format is "json" + return [ + 'results' => $this->search($terms, $start, $limit, array_merge($options, ['simplify' => true])), + 'pagination' => [ + 'more' => $paginator->hasNextPage(), + ], + ]; } public function supports($domain, $format) @@ -266,14 +256,30 @@ class PersonSearch extends AbstractSearch implements HasAdvancedSearchFormInterf 'city' => $city, ] = $terms + array_fill_keys(self::POSSIBLE_KEYS, null); - foreach (['birthdateBefore', 'birthdateAfter', 'birthdate'] as $v) { - if (null !== ${$v}) { - try { - ${$v} = new DateTime(${$v}); - } catch (Exception $e) { - throw new ParsingException('The date is ' - . 'not parsable', 0, $e); - } + if (null !== $birthdate) { + try { + $birthdate = new DateTime($birthdate); + } catch (Exception $e) { + throw new ParsingException('The date is ' + . 'not parsable', 0, $e); + } + } + + if (null !== $birthdateBefore) { + try { + $birthdateBefore = new DateTime($birthdateBefore); + } catch (Exception $e) { + throw new ParsingException('The date is ' + . 'not parsable', 0, $e); + } + } + + if (null !== $birthdateAfter) { + try { + $birthdateAfter = new DateTime($birthdateAfter); + } catch (Exception $e) { + throw new ParsingException('The date is ' + . 'not parsable', 0, $e); } } @@ -310,14 +316,30 @@ class PersonSearch extends AbstractSearch implements HasAdvancedSearchFormInterf 'city' => $city, ] = $terms + array_fill_keys(self::POSSIBLE_KEYS, null); - foreach (['birthdateBefore', 'birthdateAfter', 'birthdate'] as $v) { - if (null !== ${$v}) { - try { - ${$v} = new DateTime(${$v}); - } catch (Exception $e) { - throw new ParsingException('The date is ' - . 'not parsable', 0, $e); - } + if (null !== $birthdate) { + try { + $birthdate = new DateTime($birthdate); + } catch (Exception $e) { + throw new ParsingException('The date is ' + . 'not parsable', 0, $e); + } + } + + if (null !== $birthdateBefore) { + try { + $birthdateBefore = new DateTime($birthdateBefore); + } catch (Exception $e) { + throw new ParsingException('The date is ' + . 'not parsable', 0, $e); + } + } + + if (null !== $birthdateAfter) { + try { + $birthdateAfter = new DateTime($birthdateAfter); + } catch (Exception $e) { + throw new ParsingException('The date is ' + . 'not parsable', 0, $e); } } diff --git a/src/Bundle/ChillPersonBundle/Search/SearchHouseholdApiProvider.php b/src/Bundle/ChillPersonBundle/Search/SearchHouseholdApiProvider.php index 02d944d15..819554252 100644 --- a/src/Bundle/ChillPersonBundle/Search/SearchHouseholdApiProvider.php +++ b/src/Bundle/ChillPersonBundle/Search/SearchHouseholdApiProvider.php @@ -84,15 +84,19 @@ class SearchHouseholdApiProvider implements SearchApiInterface count($phoneResult->getFound()) > 0 ? $phoneResult->getFound()[0] : null ); + $previousFrom = $query->getFromClause(); + $previousParams = $query->getFromParams(); + $query - ->setDistinct(true, 'household_id') + ->setDistinct(true, 'cpphm.household_id') ->setFromClause( - 'view_chill_person_household_address AS vcpha ' . - 'JOIN chill_person_person AS person ON vcpha.person_id = person.id' + $previousFrom . ' '. + 'JOIN chill_person_household_members AS cpphm ON cpphm.person_id = person.id', + $previousParams ) + ->andWhereClause('(cpphm.startDate <= NOW() AND (cpphm.endDate IS NULL or cpphm.endDate > NOW()))') ->setSelectKey('household') - ->andWhereClause('vcpha.validTo IS NULL', []) - ->setSelectJsonbMetadata("jsonb_build_object('id', vcpha.household_id)"); + ->setSelectJsonbMetadata("jsonb_build_object('id', cpphm.household_id)"); return $query; } diff --git a/src/Bundle/ChillPersonBundle/Search/SimilarPersonMatcher.php b/src/Bundle/ChillPersonBundle/Search/SimilarPersonMatcher.php index b8209eaeb..c77c0758e 100644 --- a/src/Bundle/ChillPersonBundle/Search/SimilarPersonMatcher.php +++ b/src/Bundle/ChillPersonBundle/Search/SimilarPersonMatcher.php @@ -76,8 +76,22 @@ class SimilarPersonMatcher $qb->select('p') ->from(Person::class, 'p') + ->join('p.centerHistory', 'center_history') ->where('SIMILARITY(p.fullnameCanonical, UNACCENT(LOWER(:fullName))) >= :precision') - ->andWhere($qb->expr()->in('p.center', ':centers')); + ->andWhere($qb->expr()->in('center_history.center', ':centers')) + ->andWhere($qb->expr()->andX( + $qb->expr()->lte('center_history.startDate', 'CURRENT_DATE()'), + $qb->expr()->orX( + $qb->expr()->isNull('center_history.endDate'), + $qb->expr()->gt('center_history.endDate', 'CURRENT_DATE()') + ) + )) + ; + + $qb + ->setParameter('fullName', $this->personRender->renderString($person, [])) + ->setParameter('centers', $centers) + ->setParameter('precision', $precision); if (null !== $person->getBirthdate()) { $qb->andWhere($qb->expr()->orX( @@ -90,13 +104,13 @@ class SimilarPersonMatcher if ($person->getId() !== null) { $qb->andWhere($qb->expr()->neq('p.id', ':personId')); - $query->setParameter('personId', $person->getId()); + $qb->setParameter('personId', $person->getId()); $notDuplicatePersons = $this->personNotDuplicateRepository->findNotDuplicatePerson($person); if (count($notDuplicatePersons)) { $qb->andWhere($qb->expr()->notIn('p.id', ':notDuplicatePersons')); - $query->setParameter('notDuplicatePersons', $notDuplicatePersons); + $qb->setParameter('notDuplicatePersons', $notDuplicatePersons); } } @@ -109,13 +123,9 @@ class SimilarPersonMatcher case self::SIMILAR_SEARCH_ORDER_BY_SIMILARITY: default: $qb->orderBy('SIMILARITY(p.fullnameCanonical, UNACCENT(LOWER(:fullName)))', 'DESC'); + $qb->setParameter('fullName', $this->personRender->renderString($person, [])); } - $qb - ->setParameter('fullName', $this->personRender->renderString($person, [])) - ->setParameter('centers', $centers) - ->setParameter('precision', $precision); - return $qb->getQuery()->getResult(); } } diff --git a/src/Bundle/ChillPersonBundle/Security/Authorization/AccompanyingPeriodWorkEvaluationVoter.php b/src/Bundle/ChillPersonBundle/Security/Authorization/AccompanyingPeriodWorkEvaluationVoter.php index 3861d5dd6..cfa867266 100644 --- a/src/Bundle/ChillPersonBundle/Security/Authorization/AccompanyingPeriodWorkEvaluationVoter.php +++ b/src/Bundle/ChillPersonBundle/Security/Authorization/AccompanyingPeriodWorkEvaluationVoter.php @@ -51,7 +51,7 @@ class AccompanyingPeriodWorkEvaluationVoter extends Voter implements ChillVoterI { switch ($attribute) { case self::STATS: - return $this->security->isGranted(AccompanyingPeriodWorkVoter::STATS, $subject); + return $this->security->isGranted(AccompanyingPeriodVoter::STATS, $subject); case self::SEE: return $this->security->isGranted(AccompanyingPeriodWorkVoter::SEE, $subject->getAccompanyingPeriodWork()); diff --git a/src/Bundle/ChillPersonBundle/Security/AuthorizedCenterOnPersonCreation.php b/src/Bundle/ChillPersonBundle/Security/AuthorizedCenterOnPersonCreation.php index 6f8800d65..1244f921f 100644 --- a/src/Bundle/ChillPersonBundle/Security/AuthorizedCenterOnPersonCreation.php +++ b/src/Bundle/ChillPersonBundle/Security/AuthorizedCenterOnPersonCreation.php @@ -24,12 +24,12 @@ class AuthorizedCenterOnPersonCreation implements AuthorizedCenterOnPersonCreati public function __construct(AuthorizationHelperForCurrentUserInterface $authorizationHelperForCurrentUser, ParameterBagInterface $parameterBag) { $this->authorizationHelperForCurrentUser = $authorizationHelperForCurrentUser; - $this->showCenter = $parameterBag->get('chill_main')['acl']['form_show_centers']; + $this->showCenters = $parameterBag->get('chill_main')['acl']['form_show_centers']; } public function getCenters(): array { - if (!$this->showCenter) { + if (!$this->showCenters) { return []; } diff --git a/src/Bundle/ChillPersonBundle/Serializer/Normalizer/MembersEditorNormalizer.php b/src/Bundle/ChillPersonBundle/Serializer/Normalizer/MembersEditorNormalizer.php index 08286f1bd..740ea808c 100644 --- a/src/Bundle/ChillPersonBundle/Serializer/Normalizer/MembersEditorNormalizer.php +++ b/src/Bundle/ChillPersonBundle/Serializer/Normalizer/MembersEditorNormalizer.php @@ -181,7 +181,7 @@ class MembersEditorNormalizer implements DenormalizerAwareInterface, Denormalize { if ( null === $data['concerned'] ?? null - && false === ·\is_array('concerned') + && false === \is_array('concerned') ) { throw new Exception\UnexpectedValueException("The schema does not have any key 'concerned'"); } diff --git a/src/Bundle/ChillPersonBundle/Service/DocGenerator/AccompanyingPeriodContext.php b/src/Bundle/ChillPersonBundle/Service/DocGenerator/AccompanyingPeriodContext.php index 9ab733d87..4a08eff08 100644 --- a/src/Bundle/ChillPersonBundle/Service/DocGenerator/AccompanyingPeriodContext.php +++ b/src/Bundle/ChillPersonBundle/Service/DocGenerator/AccompanyingPeriodContext.php @@ -27,6 +27,7 @@ use Chill\PersonBundle\Entity\Person; use Chill\PersonBundle\Repository\PersonRepository; use Chill\PersonBundle\Templating\Entity\PersonRenderInterface; use DateTime; +use Doctrine\Common\Collections\ArrayCollection; use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityRepository; use Symfony\Bridge\Doctrine\Form\Type\EntityType; @@ -38,6 +39,9 @@ use Symfony\Contracts\Translation\TranslatorInterface; use function array_key_exists; +/** + * @template-implements DocGeneratorContextWithPublicFormInterface + */ class AccompanyingPeriodContext implements DocGeneratorContextWithAdminFormInterface, DocGeneratorContextWithPublicFormInterface @@ -153,12 +157,12 @@ class AccompanyingPeriodContext implements /** * @param AccompanyingPeriod $entity */ - public function buildPublicForm(FormBuilderInterface $builder, DocGeneratorTemplate $template, $entity): void + public function buildPublicForm(FormBuilderInterface $builder, DocGeneratorTemplate $template, mixed $entity): void { $options = $template->getOptions(); - $persons = $entity->getCurrentParticipations()->map(static function (AccompanyingPeriodParticipation $p) { + $persons = new ArrayCollection($entity->getCurrentParticipations()->map(static function (AccompanyingPeriodParticipation $p) { return $p->getPerson(); - }); + })->toArray()); foreach ($entity->getCurrentParticipations() as $p) { foreach ($p->getPerson()->getResources() as $r) { @@ -204,7 +208,7 @@ class AccompanyingPeriodContext implements $options = $template->getOptions(); $data = []; - $data = array_merge($data, $this->baseContextData->getData()); + $data = array_merge($data, $this->baseContextData->getData($contextGenerationData['creator'] ?? null)); $data['course'] = $this->normalizer->normalize($entity, 'docgen', ['docgen:expects' => AccompanyingPeriod::class, 'groups' => 'docgen:read']); foreach (['mainPerson', 'person1', 'person2'] as $k) { @@ -286,9 +290,6 @@ class AccompanyingPeriodContext implements return $denormalized; } - /** - * @param AccompanyingPeriod $entity - */ public function storeGenerated(DocGeneratorTemplate $template, StoredObject $storedObject, object $entity, array $contextGenerationData): void { $doc = new AccompanyingCourseDocument(); diff --git a/src/Bundle/ChillPersonBundle/Service/DocGenerator/AccompanyingPeriodWorkContext.php b/src/Bundle/ChillPersonBundle/Service/DocGenerator/AccompanyingPeriodWorkContext.php index 59f5fdb0c..ad1952596 100644 --- a/src/Bundle/ChillPersonBundle/Service/DocGenerator/AccompanyingPeriodWorkContext.php +++ b/src/Bundle/ChillPersonBundle/Service/DocGenerator/AccompanyingPeriodWorkContext.php @@ -24,6 +24,8 @@ use Symfony\Component\Serializer\Normalizer\NormalizerInterface; * * Although there isn't any document associated to AccompanyingPeriodWork, this context * is use by @link{AccompanyingPeriodWorkEvaluationContext}. + * + * @implements DocGeneratorContextWithPublicFormInterface */ class AccompanyingPeriodWorkContext implements DocGeneratorContextWithPublicFormInterface { @@ -56,17 +58,11 @@ class AccompanyingPeriodWorkContext implements DocGeneratorContextWithPublicForm $builder->remove('category'); } - /** - * @param AccompanyingPeriodWork $entity - */ public function buildPublicForm(FormBuilderInterface $builder, DocGeneratorTemplate $template, $entity): void { $this->periodContext->buildPublicForm($builder, $template, $entity->getAccompanyingPeriod()); } - /** - * @param AccompanyingPeriodWork $entity - */ public function getData(DocGeneratorTemplate $template, $entity, array $contextGenerationData = []): array { $data = $this->periodContext->getData($template, $entity->getAccompanyingPeriod(), $contextGenerationData); @@ -88,9 +84,6 @@ class AccompanyingPeriodWorkContext implements DocGeneratorContextWithPublicForm return AccompanyingPeriodWork::class; } - /** - * @param AccompanyingPeriodWork $entity - */ public function getFormData(DocGeneratorTemplate $template, $entity): array { return $this->periodContext->getFormData($template, $entity->getAccompanyingPeriod()); @@ -113,17 +106,17 @@ class AccompanyingPeriodWorkContext implements DocGeneratorContextWithPublicForm public function hasPublicForm(DocGeneratorTemplate $template, $entity): bool { - return $this->periodContext->hasPublicForm($template, $entity); + return $this->periodContext->hasPublicForm($template, $entity->getAccompanyingPeriod()); } public function contextGenerationDataNormalize(DocGeneratorTemplate $template, $entity, array $data): array { - return $this->periodContext->contextGenerationDataNormalize($template, $entity, $data); + return $this->periodContext->contextGenerationDataNormalize($template, $entity->getAccompanyingPeriod(), $data); } public function contextGenerationDataDenormalize(DocGeneratorTemplate $template, $entity, array $data): array { - return $this->periodContext->contextGenerationDataDenormalize($template, $entity, $data); + return $this->periodContext->contextGenerationDataDenormalize($template, $entity->getAccompanyingPeriod(), $data); } public function storeGenerated(DocGeneratorTemplate $template, StoredObject $storedObject, object $entity, array $contextGenerationData): void diff --git a/src/Bundle/ChillPersonBundle/Service/DocGenerator/AccompanyingPeriodWorkEvaluationContext.php b/src/Bundle/ChillPersonBundle/Service/DocGenerator/AccompanyingPeriodWorkEvaluationContext.php index 978aac066..4718b7b00 100644 --- a/src/Bundle/ChillPersonBundle/Service/DocGenerator/AccompanyingPeriodWorkEvaluationContext.php +++ b/src/Bundle/ChillPersonBundle/Service/DocGenerator/AccompanyingPeriodWorkEvaluationContext.php @@ -26,6 +26,9 @@ use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Serializer\Normalizer\AbstractNormalizer; use Symfony\Component\Serializer\Normalizer\NormalizerInterface; +/** + * @implements DocGeneratorContextWithPublicFormInterface + */ class AccompanyingPeriodWorkEvaluationContext implements DocGeneratorContextWithAdminFormInterface, DocGeneratorContextWithPublicFormInterface @@ -102,17 +105,11 @@ class AccompanyingPeriodWorkEvaluationContext implements ]); } - /** - * @param AccompanyingPeriodWorkEvaluation $entity - */ public function buildPublicForm(FormBuilderInterface $builder, DocGeneratorTemplate $template, $entity): void { $this->accompanyingPeriodWorkContext->buildPublicForm($builder, $template, $entity->getAccompanyingPeriodWork()); } - /** - * @param AccompanyingPeriodWorkEvaluation $entity - */ public function getData(DocGeneratorTemplate $template, $entity, array $contextGenerationData = []): array { $data = $this->accompanyingPeriodWorkContext @@ -139,9 +136,6 @@ class AccompanyingPeriodWorkEvaluationContext implements return AccompanyingPeriodWorkEvaluation::class; } - /** - * @param AccompanyingPeriodWorkEvaluation $entity - */ public function getFormData(DocGeneratorTemplate $template, $entity): array { return $this->accompanyingPeriodWorkContext->getFormData( @@ -177,13 +171,13 @@ class AccompanyingPeriodWorkEvaluationContext implements public function contextGenerationDataNormalize(DocGeneratorTemplate $template, $entity, array $data): array { return $this->accompanyingPeriodWorkContext - ->contextGenerationDataNormalize($template, $entity, $data); + ->contextGenerationDataNormalize($template, $entity->getAccompanyingPeriodWork(), $data); } public function contextGenerationDataDenormalize(DocGeneratorTemplate $template, $entity, array $data): array { return $this->accompanyingPeriodWorkContext - ->contextGenerationDataDenormalize($template, $entity, $data); + ->contextGenerationDataDenormalize($template, $entity->getAccompanyingPeriodWork(), $data); } public function storeGenerated(DocGeneratorTemplate $template, StoredObject $storedObject, object $entity, array $contextGenerationData): void diff --git a/src/Bundle/ChillPersonBundle/Service/DocGenerator/PersonContext.php b/src/Bundle/ChillPersonBundle/Service/DocGenerator/PersonContext.php index 988c50829..c7c7d2352 100644 --- a/src/Bundle/ChillPersonBundle/Service/DocGenerator/PersonContext.php +++ b/src/Bundle/ChillPersonBundle/Service/DocGenerator/PersonContext.php @@ -165,7 +165,7 @@ final class PersonContext implements PersonContextInterface } $data = []; - $data = array_merge($data, $this->baseContextData->getData()); + $data = array_merge($data, $this->baseContextData->getData($contextGenerationData['creator'] ?? null)); $data['person'] = $this->normalizer->normalize($entity, 'docgen', [ 'docgen:expects' => Person::class, 'groups' => ['docgen:read'], @@ -249,9 +249,6 @@ final class PersonContext implements PersonContextInterface ]; } - /** - * @param Person $entity - */ public function storeGenerated(DocGeneratorTemplate $template, StoredObject $storedObject, object $entity, array $contextGenerationData): void { $doc = new PersonDocument(); diff --git a/src/Bundle/ChillPersonBundle/Service/DocGenerator/PersonContextInterface.php b/src/Bundle/ChillPersonBundle/Service/DocGenerator/PersonContextInterface.php index ab50655a0..6de8c1c50 100644 --- a/src/Bundle/ChillPersonBundle/Service/DocGenerator/PersonContextInterface.php +++ b/src/Bundle/ChillPersonBundle/Service/DocGenerator/PersonContextInterface.php @@ -18,6 +18,9 @@ use Chill\DocStoreBundle\Entity\StoredObject; use Chill\PersonBundle\Entity\Person; use Symfony\Component\Form\FormBuilderInterface; +/** + * @template-extends DocGeneratorContextWithPublicFormInterface + */ interface PersonContextInterface extends DocGeneratorContextWithAdminFormInterface, DocGeneratorContextWithPublicFormInterface { public function adminFormReverseTransform(array $data): array; @@ -26,10 +29,7 @@ interface PersonContextInterface extends DocGeneratorContextWithAdminFormInterfa public function buildAdminForm(FormBuilderInterface $builder): void; - /** - * @param Person $entity - */ - public function buildPublicForm(FormBuilderInterface $builder, DocGeneratorTemplate $template, $entity): void; + public function buildPublicForm(FormBuilderInterface $builder, DocGeneratorTemplate $template, mixed $entity): void; public function getData(DocGeneratorTemplate $template, $entity, array $contextGenerationData = []): array; @@ -37,7 +37,7 @@ interface PersonContextInterface extends DocGeneratorContextWithAdminFormInterfa public function getEntityClass(): string; - public function getFormData(DocGeneratorTemplate $template, $entity): array; + public function getFormData(DocGeneratorTemplate $template, mixed $entity): array; public function getName(): string; @@ -52,8 +52,5 @@ interface PersonContextInterface extends DocGeneratorContextWithAdminFormInterfa public function contextGenerationDataDenormalize(DocGeneratorTemplate $template, $entity, array $data): array; - /** - * @param Person $entity - */ public function storeGenerated(DocGeneratorTemplate $template, StoredObject $storedObject, object $entity, array $contextGenerationData): void; } diff --git a/src/Bundle/ChillPersonBundle/Templating/Entity/ClosingMotiveRender.php b/src/Bundle/ChillPersonBundle/Templating/Entity/ClosingMotiveRender.php index 688136b35..0064a53d5 100644 --- a/src/Bundle/ChillPersonBundle/Templating/Entity/ClosingMotiveRender.php +++ b/src/Bundle/ChillPersonBundle/Templating/Entity/ClosingMotiveRender.php @@ -12,14 +12,19 @@ declare(strict_types=1); namespace Chill\PersonBundle\Templating\Entity; use Chill\MainBundle\Templating\Entity\AbstractChillEntityRender; +use Chill\MainBundle\Templating\Entity\BoxUtilsChillEntityRenderTrait; +use Chill\MainBundle\Templating\Entity\ChillEntityRenderInterface; use Chill\MainBundle\Templating\TranslatableStringHelper; use Chill\PersonBundle\Entity\AccompanyingPeriod\ClosingMotive; /** * Render closing motive. + * + * @implements ChillEntityRenderInterface */ -class ClosingMotiveRender extends AbstractChillEntityRender +class ClosingMotiveRender implements ChillEntityRenderInterface { + use BoxUtilsChillEntityRenderTrait; private const SEPARATOR = ' > '; /** @@ -40,9 +45,6 @@ class ClosingMotiveRender extends AbstractChillEntityRender $this->getDefaultClosingBox(); } - /** - * @param ClosingMotive $entity - */ public function renderString($entity, array $options): string { return $this->renderStringRecursive( @@ -57,12 +59,12 @@ class ClosingMotiveRender extends AbstractChillEntityRender return $entity instanceof ClosingMotive; } - protected function renderStringRecursive(ClosingMotive $motive, $existing, array $options) + private function renderStringRecursive(ClosingMotive $motive, string $existing, array $options) { $newExisting = $this->translatableStringHelper->localize($motive->getName()); if ($motive->hasParent()) { - if (!empty($existing)) { + if ('' !== $existing) { $newExisting = $newExisting . self::SEPARATOR . $existing; } @@ -73,7 +75,7 @@ class ClosingMotiveRender extends AbstractChillEntityRender ); } - if (!empty($existing)) { + if ('' !== $existing) { return $newExisting . self::SEPARATOR . $existing; } diff --git a/src/Bundle/ChillPersonBundle/Templating/Entity/PersonRender.php b/src/Bundle/ChillPersonBundle/Templating/Entity/PersonRender.php index 9fb60b040..05d9b3009 100644 --- a/src/Bundle/ChillPersonBundle/Templating/Entity/PersonRender.php +++ b/src/Bundle/ChillPersonBundle/Templating/Entity/PersonRender.php @@ -12,6 +12,8 @@ declare(strict_types=1); namespace Chill\PersonBundle\Templating\Entity; use Chill\MainBundle\Templating\Entity\AbstractChillEntityRender; +use Chill\MainBundle\Templating\Entity\BoxUtilsChillEntityRenderTrait; +use Chill\MainBundle\Templating\Entity\ChillEntityRenderInterface; use Chill\PersonBundle\Config\ConfigPersonAltNamesHelper; use Chill\PersonBundle\Entity\Person; use Symfony\Component\Templating\EngineInterface; @@ -22,8 +24,9 @@ use function array_key_exists; /** * Render a Person. */ -class PersonRender extends AbstractChillEntityRender implements PersonRenderInterface +class PersonRender implements PersonRenderInterface { + use BoxUtilsChillEntityRenderTrait; private ConfigPersonAltNamesHelper $configAltNamesHelper; private EngineInterface $engine; @@ -40,9 +43,6 @@ class PersonRender extends AbstractChillEntityRender implements PersonRenderInte $this->translator = $translator; } - /** - * @param Person $person - */ public function renderBox($person, array $options): string { $params = [ @@ -72,9 +72,6 @@ class PersonRender extends AbstractChillEntityRender implements PersonRenderInte $this->getDefaultClosingBox(); } - /** - * @param Person $person - */ public function renderString($person, array $options): string { $options = array_merge(['addAge' => true], $options); diff --git a/src/Bundle/ChillPersonBundle/Templating/Entity/PersonRenderInterface.php b/src/Bundle/ChillPersonBundle/Templating/Entity/PersonRenderInterface.php index cc42ec305..2f69d31a9 100644 --- a/src/Bundle/ChillPersonBundle/Templating/Entity/PersonRenderInterface.php +++ b/src/Bundle/ChillPersonBundle/Templating/Entity/PersonRenderInterface.php @@ -12,9 +12,12 @@ declare(strict_types=1); namespace Chill\PersonBundle\Templating\Entity; use Chill\MainBundle\Templating\Entity\ChillEntityRenderInterface; +use Chill\PersonBundle\Entity\Person; /** * Render a Person. + * + * @extends ChillEntityRenderInterface */ interface PersonRenderInterface extends ChillEntityRenderInterface { diff --git a/src/Bundle/ChillPersonBundle/Templating/Entity/ResourceKindRender.php b/src/Bundle/ChillPersonBundle/Templating/Entity/ResourceKindRender.php index b1aa31e41..61c674b76 100644 --- a/src/Bundle/ChillPersonBundle/Templating/Entity/ResourceKindRender.php +++ b/src/Bundle/ChillPersonBundle/Templating/Entity/ResourceKindRender.php @@ -15,6 +15,9 @@ use Chill\MainBundle\Templating\Entity\ChillEntityRenderInterface; use Chill\MainBundle\Templating\TranslatableStringHelper; use Chill\PersonBundle\Entity\Person\PersonResourceKind; +/** + * @implements ChillEntityRenderInterface + */ final class ResourceKindRender implements ChillEntityRenderInterface { private TranslatableStringHelper $translatableStringHelper; diff --git a/src/Bundle/ChillPersonBundle/Templating/Entity/SocialActionRender.php b/src/Bundle/ChillPersonBundle/Templating/Entity/SocialActionRender.php index bfe49c0a4..dd8083878 100644 --- a/src/Bundle/ChillPersonBundle/Templating/Entity/SocialActionRender.php +++ b/src/Bundle/ChillPersonBundle/Templating/Entity/SocialActionRender.php @@ -20,6 +20,9 @@ use function array_merge; use function array_reverse; use function implode; +/** + * @implements ChillEntityRenderInterface + */ class SocialActionRender implements ChillEntityRenderInterface { public const AND_CHILDREN_MENTION = 'show_and_children_mention'; diff --git a/src/Bundle/ChillPersonBundle/Templating/Entity/SocialIssueRender.php b/src/Bundle/ChillPersonBundle/Templating/Entity/SocialIssueRender.php index 62d17f47e..f3962535b 100644 --- a/src/Bundle/ChillPersonBundle/Templating/Entity/SocialIssueRender.php +++ b/src/Bundle/ChillPersonBundle/Templating/Entity/SocialIssueRender.php @@ -19,6 +19,9 @@ use Symfony\Contracts\Translation\TranslatorInterface; use function array_reverse; use function implode; +/** + * @implements ChillEntityRenderInterface + */ final class SocialIssueRender implements ChillEntityRenderInterface { public const AND_CHILDREN_MENTION = 'show_and_children_mention'; @@ -53,9 +56,6 @@ final class SocialIssueRender implements ChillEntityRenderInterface $this->translator = $translator; } - /** - * @param SocialIssue $socialIssue - */ public function renderBox($socialIssue, array $options): string { $options = array_merge(self::DEFAULT_ARGS, $options); @@ -74,9 +74,6 @@ final class SocialIssueRender implements ChillEntityRenderInterface ); } - /** - * @param SocialIssue $socialIssue - */ public function renderString($socialIssue, array $options): string { /** @var SocialIssue $socialIssue */ diff --git a/src/Bundle/ChillPersonBundle/Tests/AccompanyingPeriod/SocialIssueConsistency/AccompanyingPeriodSocialIssueConsistencyEntityListenerTest.php b/src/Bundle/ChillPersonBundle/Tests/AccompanyingPeriod/SocialIssueConsistency/AccompanyingPeriodSocialIssueConsistencyEntityListenerTest.php index 0c8c3e0c3..8ac092647 100644 --- a/src/Bundle/ChillPersonBundle/Tests/AccompanyingPeriod/SocialIssueConsistency/AccompanyingPeriodSocialIssueConsistencyEntityListenerTest.php +++ b/src/Bundle/ChillPersonBundle/Tests/AccompanyingPeriod/SocialIssueConsistency/AccompanyingPeriodSocialIssueConsistencyEntityListenerTest.php @@ -114,7 +114,7 @@ final class AccompanyingPeriodSocialIssueConsistencyEntityListenerTest extends T protected function generateClass(AccompanyingPeriod $period, Collection $socialIssues): AccompanyingPeriodLinkedWithSocialIssuesEntityInterface { - return new class($period, $socialIssues) implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterface { + return new class ($period, $socialIssues) implements AccompanyingPeriodLinkedWithSocialIssuesEntityInterface { public Collection $socialIssues; public AccompanyingPeriod $period; diff --git a/src/Bundle/ChillPersonBundle/Tests/Serializer/Normalizer/PersonDocGenNormalizerTest.php b/src/Bundle/ChillPersonBundle/Tests/Serializer/Normalizer/PersonDocGenNormalizerTest.php index 28ae1c89c..e85813d62 100644 --- a/src/Bundle/ChillPersonBundle/Tests/Serializer/Normalizer/PersonDocGenNormalizerTest.php +++ b/src/Bundle/ChillPersonBundle/Tests/Serializer/Normalizer/PersonDocGenNormalizerTest.php @@ -159,7 +159,7 @@ final class PersonDocGenNormalizerTest extends KernelTestCase $householdMember = new HouseholdMember(); $householdMember ->setPosition((new Position())->setAllowHolder(true)->setLabel(['fr' => 'position']) - ->setShareHousehold(true)) + ->setShareHousehold(true)) ->setHolder(true); $person->addHouseholdParticipation($householdMember); $household->addMember($householdMember); @@ -171,7 +171,7 @@ final class PersonDocGenNormalizerTest extends KernelTestCase $householdMember = new HouseholdMember(); $householdMember ->setPosition((new Position())->setAllowHolder(true)->setLabel(['fr' => 'position2']) - ->setShareHousehold(true)) + ->setShareHousehold(true)) ->setHolder(false); $person->addHouseholdParticipation($householdMember); $household->addMember($householdMember); diff --git a/src/Bundle/ChillPersonBundle/Tests/Validator/AccompanyingPeriod/ParticipationOverlapValidatorTest.php b/src/Bundle/ChillPersonBundle/Tests/Validator/AccompanyingPeriod/ParticipationOverlapValidatorTest.php index 181834b6a..a4c67f565 100644 --- a/src/Bundle/ChillPersonBundle/Tests/Validator/AccompanyingPeriod/ParticipationOverlapValidatorTest.php +++ b/src/Bundle/ChillPersonBundle/Tests/Validator/AccompanyingPeriod/ParticipationOverlapValidatorTest.php @@ -12,51 +12,106 @@ declare(strict_types=1); namespace Validator\AccompanyingPeriod; use Chill\PersonBundle\Entity\AccompanyingPeriod; -use Chill\PersonBundle\Entity\AccompanyingPeriodParticipation; use Chill\PersonBundle\Entity\Person; use Chill\PersonBundle\Templating\Entity\PersonRenderInterface; use Chill\PersonBundle\Validator\Constraints\AccompanyingPeriod\ParticipationOverlap; use Chill\PersonBundle\Validator\Constraints\AccompanyingPeriod\ParticipationOverlapValidator; use Chill\ThirdPartyBundle\Entity\ThirdParty; use Chill\ThirdPartyBundle\Templating\Entity\ThirdPartyRender; -use Doctrine\Common\Collections\ArrayCollection; use Prophecy\Argument; use Prophecy\PhpUnit\ProphecyTrait; use Symfony\Component\Validator\Test\ConstraintValidatorTestCase; +/** + * @internal + * @coversNothing + */ class ParticipationOverlapValidatorTest extends ConstraintValidatorTestCase { use ProphecyTrait; - protected function createValidator() + public function testNoViolation(): void { - $personRender = $this->prophesize(PersonRenderInterface::class); - $personRender->renderString(Argument::is(Person::class), [])->willReturn('person'); - $thirdPartyRender = $this->prophesize(ThirdPartyRender::class); - $thirdPartyRender->renderString(Argument::is(ThirdParty::class), [])->willReturn('thirdparty'); + $constraint = $this->getConstraint(); - return new ParticipationOverlapValidator($personRender->reveal(), $thirdPartyRender->reveal()); - } - - public function testOneParticipation() - { $period = new AccompanyingPeriod(); - $person = new Person(); + $person1 = new Person(); + $person2 = new Person(); - $collection = new ArrayCollection([ - new AccompanyingPeriodParticipation($period, $person) - ]); + $period->createParticipationFor($person1); + $period->createParticipationFor($person2); - $this->validator->validate($collection, $this->getConstraint()); + $this->validator->validate($period->getParticipations(), $constraint); $this->assertNoViolation(); } - /** - * @return mixed - */ - public function getConstraint() + public function testHasTwoParticipationsOverlaps(): void { - return new ParticipationOverlap(); + $constraint = $this->getConstraint(); + + $period = new AccompanyingPeriod(); + $person1 = new Person(); + $reflectionPerson = new \ReflectionClass($person1); + $personId = $reflectionPerson->getProperty('id'); + $personId->setAccessible(true); + $personId->setValue($person1, 1); + $person2 = new Person(); + + $period->createParticipationFor($person1); + $period->createParticipationFor($person1); + $period->createParticipationFor($person2); + + $this->validator->validate($period->getParticipations(), $constraint); + + $this->buildViolation('participation-overlaps') + ->setParameters([ + '{{ start }}' => (new \DateTimeImmutable('today'))->format('d-m-Y'), + '{{ end }}' => null, + '{{ ids }}' => [null, null], + '{{ name }}' => 'person' + ]) + ->assertRaised(); + } + + public function testHasTwoParticipationsButDoNotOverlaps(): void + { + $constraint = $this->getConstraint(); + + $period = new AccompanyingPeriod(); + $person1 = new Person(); + $reflectionPerson = new \ReflectionClass($person1); + $personId = $reflectionPerson->getProperty('id'); + $personId->setAccessible(true); + $personId->setValue($person1, 1); + $person2 = new Person(); + + $participation1 = $period->createParticipationFor($person1); + $period->createParticipationFor($person1); + $participation1->setEndDate(new \DateTime('now')); + $period->createParticipationFor($person2); + + $this->validator->validate($period->getParticipations(), $constraint); + + $this->assertNoViolation(); + } + protected function createValidator(): ParticipationOverlapValidator + { + $personRender = $this->prophesize(PersonRenderInterface::class); + $personRender->renderString(Argument::type(Person::class), []) + ->willReturn('person'); + $thirdPartyRender = $this->prophesize(ThirdPartyRender::class); + $thirdPartyRender->renderString(Argument::type(ThirdParty::class), []) + ->willReturn('third-party'); + + return new ParticipationOverlapValidator( + $personRender->reveal(), + $thirdPartyRender->reveal() + ); + } + + public function getConstraint(): ParticipationOverlap + { + return new ParticipationOverlap(['message' => 'participation-overlaps']); } } diff --git a/src/Bundle/ChillPersonBundle/Validator/Constraints/AccompanyingPeriod/AccompanyingPeriodValidityValidator.php b/src/Bundle/ChillPersonBundle/Validator/Constraints/AccompanyingPeriod/AccompanyingPeriodValidityValidator.php index 51462c56e..9454d31d0 100644 --- a/src/Bundle/ChillPersonBundle/Validator/Constraints/AccompanyingPeriod/AccompanyingPeriodValidityValidator.php +++ b/src/Bundle/ChillPersonBundle/Validator/Constraints/AccompanyingPeriod/AccompanyingPeriodValidityValidator.php @@ -54,7 +54,7 @@ class AccompanyingPeriodValidityValidator extends ConstraintValidator $activities = $this->activityRepository->findBy(['accompanyingPeriod' => $period]); foreach ($activities as $activity) { - $socialIssues = $activity->getSocialIssues()->toArray(); + $socialIssues = array_merge($socialIssues, $activity->getSocialIssues()->toArray()); } foreach ($period->getWorks() as $work) { @@ -64,7 +64,7 @@ class AccompanyingPeriodValidityValidator extends ConstraintValidator $socialIssuesByKey = []; foreach ($socialIssues as $si) { - $socialIssuesByKey[$si->getId()] = $si; + $socialIssuesByKey[spl_object_hash($si)] = $si; } $periodIssuesWithAncestors = []; @@ -75,7 +75,7 @@ class AccompanyingPeriodValidityValidator extends ConstraintValidator $periodIssuesWithAncestors, array_map( static function (SocialIssue $si) { - return $si->getId(); + return spl_object_hash($si); }, $si->getAncestors(true) ) diff --git a/src/Bundle/ChillPersonBundle/Validator/Constraints/AccompanyingPeriod/ParticipationOverlapValidator.php b/src/Bundle/ChillPersonBundle/Validator/Constraints/AccompanyingPeriod/ParticipationOverlapValidator.php index 9c9991a1a..67ee00756 100644 --- a/src/Bundle/ChillPersonBundle/Validator/Constraints/AccompanyingPeriod/ParticipationOverlapValidator.php +++ b/src/Bundle/ChillPersonBundle/Validator/Constraints/AccompanyingPeriod/ParticipationOverlapValidator.php @@ -61,9 +61,9 @@ class ParticipationOverlapValidator extends ConstraintValidator throw new UnexpectedTypeException($participation, AccompanyingPeriodParticipation::class); } - $personId = $participation->getPerson()->getId(); + $hashPerson = spl_object_hash($participation->getPerson()); - $participationList[$personId][] = $participation; + $participationList[$hashPerson][] = $participation; } foreach ($participationList as $group) { @@ -78,15 +78,14 @@ class ParticipationOverlapValidator extends ConstraintValidator if ($overlaps->hasIntersections()) { foreach ($overlaps->getIntersections() as [$start, $end, $ids]) { - $msg = null === $end ? $constraint->message : - $constraint->message; + $msg = $constraint->message; $this->context->buildViolation($msg) ->setParameters([ '{{ start }}' => $start->format('d-m-Y'), '{{ end }}' => null === $end ? null : $end->format('d-m-Y'), '{{ ids }}' => $ids, - '{{ name }}' => $this->personRender->renderString($participation->getPerson(), []), + '{{ name }}' => $this->personRender->renderString($participations[0]->getPerson(), []), ]) ->addViolation(); } diff --git a/src/Bundle/ChillPersonBundle/Workflow/AccompanyingPeriodWorkEvaluationDocumentWorkflowHandler.php b/src/Bundle/ChillPersonBundle/Workflow/AccompanyingPeriodWorkEvaluationDocumentWorkflowHandler.php index 735463fc2..500daab6f 100644 --- a/src/Bundle/ChillPersonBundle/Workflow/AccompanyingPeriodWorkEvaluationDocumentWorkflowHandler.php +++ b/src/Bundle/ChillPersonBundle/Workflow/AccompanyingPeriodWorkEvaluationDocumentWorkflowHandler.php @@ -97,6 +97,21 @@ class AccompanyingPeriodWorkEvaluationDocumentWorkflowHandler implements EntityW return AccompanyingPeriodWorkEvaluationDocumentVoter::SEE; } + public function getSuggestedUsers(EntityWorkflow $entityWorkflow): array + { + $suggestedUsers = $entityWorkflow->getUsersInvolved(); + + $referrer = $this->getRelatedEntity($entityWorkflow) + ->getAccompanyingPeriodWorkEvaluation() + ->getAccompanyingPeriodWork() + ->getAccompanyingPeriod() + ->getUser(); + + $suggestedUsers[spl_object_hash($referrer)] = $referrer; + + return $suggestedUsers; + } + public function getTemplate(EntityWorkflow $entityWorkflow, array $options = []): string { return '@ChillPerson/Workflow/_evaluation_document.html.twig'; diff --git a/src/Bundle/ChillPersonBundle/Workflow/AccompanyingPeriodWorkEvaluationWorkflowHandler.php b/src/Bundle/ChillPersonBundle/Workflow/AccompanyingPeriodWorkEvaluationWorkflowHandler.php index 25edce03b..db67ef045 100644 --- a/src/Bundle/ChillPersonBundle/Workflow/AccompanyingPeriodWorkEvaluationWorkflowHandler.php +++ b/src/Bundle/ChillPersonBundle/Workflow/AccompanyingPeriodWorkEvaluationWorkflowHandler.php @@ -87,6 +87,20 @@ class AccompanyingPeriodWorkEvaluationWorkflowHandler implements EntityWorkflowH return AccompanyingPeriodWorkEvaluationVoter::SEE; } + public function getSuggestedUsers(EntityWorkflow $entityWorkflow): array + { + $suggestedUsers = $entityWorkflow->getUsersInvolved(); + + $referrer = $this->getRelatedEntity($entityWorkflow) + ->getAccompanyingPeriodWork() + ->getAccompanyingPeriod() + ->getUser(); + + $suggestedUsers[spl_object_hash($referrer)] = $referrer; + + return $suggestedUsers; + } + public function getTemplate(EntityWorkflow $entityWorkflow, array $options = []): string { return '@ChillPerson/Workflow/_evaluation.html.twig'; diff --git a/src/Bundle/ChillPersonBundle/Workflow/AccompanyingPeriodWorkWorkflowHandler.php b/src/Bundle/ChillPersonBundle/Workflow/AccompanyingPeriodWorkWorkflowHandler.php index b6829ab77..3cdf23f88 100644 --- a/src/Bundle/ChillPersonBundle/Workflow/AccompanyingPeriodWorkWorkflowHandler.php +++ b/src/Bundle/ChillPersonBundle/Workflow/AccompanyingPeriodWorkWorkflowHandler.php @@ -94,6 +94,21 @@ class AccompanyingPeriodWorkWorkflowHandler implements EntityWorkflowHandlerInte return null; } + public function getSuggestedUsers(EntityWorkflow $entityWorkflow): array + { + $suggestedUsers = $entityWorkflow->getUsersInvolved(); + + $referrer = $this->getRelatedEntity($entityWorkflow) + ->getAccompanyingPeriod() + ->getUser(); + + if (null !== $referrer) { + $suggestedUsers[spl_object_hash($referrer)] = $referrer; + } + + return $suggestedUsers; + } + public function getTemplate(EntityWorkflow $entityWorkflow, array $options = []): string { return '@ChillPerson/Workflow/_accompanying_period_work.html.twig'; diff --git a/src/Bundle/ChillPersonBundle/config/services/exports_person.yaml b/src/Bundle/ChillPersonBundle/config/services/exports_person.yaml index a8563e5ca..bf372ea06 100644 --- a/src/Bundle/ChillPersonBundle/config/services/exports_person.yaml +++ b/src/Bundle/ChillPersonBundle/config/services/exports_person.yaml @@ -110,6 +110,12 @@ services: tags: - { name: chill.export_filter, alias: person_geog_filter } + Chill\PersonBundle\Export\Filter\PersonFilters\AddressRefStatusFilter: + autowire: true + autoconfigure: true + tags: + - { name: chill.export_filter, alias: person_address_ref_status_filter } + Chill\PersonBundle\Export\Filter\PersonFilters\ByHouseholdCompositionFilter: tags: - { name: chill.export_filter, alias: person_by_household_composition_filter } diff --git a/src/Bundle/ChillPersonBundle/migrations/Version20230210104424.php b/src/Bundle/ChillPersonBundle/migrations/Version20230210104424.php new file mode 100644 index 000000000..0e2369db4 --- /dev/null +++ b/src/Bundle/ChillPersonBundle/migrations/Version20230210104424.php @@ -0,0 +1,33 @@ +addSql('ALTER TABLE chill_person_accompanying_period_work_evaluation ADD timeSpent INT DEFAULT NULL'); + } + + public function down(Schema $schema): void + { + $this->addSql('ALTER TABLE chill_person_accompanying_period_work_evaluation DROP timeSpent'); + } +} diff --git a/src/Bundle/ChillPersonBundle/translations/messages.fr.yml b/src/Bundle/ChillPersonBundle/translations/messages.fr.yml index 808ce5257..18e3ab13f 100644 --- a/src/Bundle/ChillPersonBundle/translations/messages.fr.yml +++ b/src/Bundle/ChillPersonBundle/translations/messages.fr.yml @@ -47,8 +47,8 @@ Phonenumber: 'Numéro de téléphone' phonenumber: numéro de téléphone Mobilenumber: 'Numéro de téléphone portable' mobilenumber: numéro de téléphone portable -Accept short text message ?: La personne a donné l'autorisation d'utiliser ce no de téléphone pour l'envoi de rappel par SMS -Accept short text message: La personne a donné l'autorisation d'utiliser ce no de téléphone pour l'envoi de rappel par SMS +Accept short text message ?: L'usager a donné l'autorisation d'utiliser ce no de téléphone pour l'envoi de rappel par SMS +Accept short text message: L'usager a donné l'autorisation d'utiliser ce no de téléphone pour l'envoi de rappel par SMS Other phonenumber: Autre numéro de téléphone Others phone numbers: Autres numéros de téléphone No additional phone numbers: Aucun numéro de téléphone supplémentaire @@ -85,9 +85,9 @@ Course number: Parcours n° Civility: Civilité choose civility: -- All genders: tous les genres -Any person selected: Aucune personne sélectionnée -Create a household and add an address: Ajouter une adresse pour une personne non suivie et seule dans un ménage -A new household will be created. The person will be member of this household.: Un nouveau ménage va être créé. La personne sera membre de ce ménage. +Any person selected: Aucun usager sélectionné +Create a household and add an address: Ajouter une adresse pour un usager non suivie et seule dans un ménage +A new household will be created. The person will be member of this household.: Un nouveau ménage va être créé. L'usager sera membre de ce ménage. Comment on the gender: Commentaire sur le genre genderComment: Commentaire sur le genre maritalStatus: État civil @@ -136,10 +136,10 @@ address_country_name: Pays address_country_code: Code pays 'Alreay existing person': 'Dossiers déjà encodés' -'Add the person': 'Ajouter la personne' -'Add the person and create an accompanying period': "Créer la personne ET créer une période d'accompagnement" -'Add the person and create a household': "Créer la personne ET créer un ménage" -Show person: Voir le dossier de la personne +'Add the person': "Ajouter l'usager" +'Add the person and create an accompanying period': "Créer l'usager et créer un parcours d'accompagnement" +'Add the person and create a household': "Créer l'usager et créer un ménage" +Show person: Voir le dossier de l'usager 'Confirm the creation': 'Confirmer la création' 'You will create this person': 'Vous allez créer le dossier suivant' Return: Retour @@ -148,51 +148,51 @@ Reset: 'Remise à zéro' 'The person data has been updated': 'Les données ont été mises à jour.' 'The person data provided are not valid': 'Les données introduites ne sont pas valides' '{1} The person field %field% is incorrect. Please check. | ]1, Inf] Several person fields are incorrect. Please check.': '{1} Le champs %field% est incorrect. Veuillez le corriger. | ]1, Inf] Plusieurs champs sont incorrects. Veuillez les vérifier.' -'Add a person': 'Ajout d''une personne' -'Person Menu': 'Menu personne' +'Add a person': 'Ajout d''un usager' +'Person Menu': 'Menu usager' 'The person data are not valid': 'Les données de votre formulaire sont invalides.' -'%nb% person with similar name. Please verify that this is a new person': '{1} Une personne a un nom similaire. Vérifiez qu''il ne s''agit pas d''elle. | ]1, Inf] %nb% personnes ont un nom similaire. Vérifiez qu''il ne s''agit pas de l''une d''elles.' +'%nb% person with similar name. Please verify that this is a new person': '{1} Une usager a un nom similaire. Vérifiez qu''il ne s''agit pas d''elle. | ]1, Inf] %nb% usagers ont un nom similaire. Vérifiez qu''il ne s''agit pas de l''une d''elles.' 'The person has been created': 'Le dossier a été créé' -'Person search results': 'Recherche de personnes' -Person search results by phonenumber: Recherche de personnes par numéro de téléphone -'Search within persons': 'Recherche parmi les personnes' -Open person file: Ouvrir le dossier de la personne +'Person search results': 'Recherche de usagers' +Person search results by phonenumber: Recherche d'usager par numéro de téléphone +'Search within persons': 'Recherche parmi les usagers' +Open person file: Ouvrir le dossier de l'usager and %number% other: '{0} et aucun autre| {1} et une autre |]1, Inf] et %number% autres' -'%total% persons matching the search pattern:': '{0} Aucune personne ne correspond aux termes de recherche : | {1} Une personne a été trouvée par la recherche : | ]1,Inf] %total% personnes correspondent aux termes de recherche :' +'%total% persons matching the search pattern:': '{0} Aucune usager ne correspond aux termes de recherche : | {1} Un usager a été trouvé par la recherche : | ]1,Inf] %total% usagers correspondent aux termes de recherche :' 'Last opening since %last_opening%': 'Dernière ouverture le %last_opening%.' 'Person accompanying period - %name%': 'Historique du dossier - %name%' 'Opening date': 'Date d''ouverture' 'Closing date': 'Date de clôture' 'Period opened': 'Période ouverte' -'Close accompanying period': 'Clôre la période' -'Open accompanying period': 'Ouvrir la période' +'Close accompanying period': 'Clôre le parcours' +'Open accompanying period': 'Ouvrir le parcours' Period number %number%: 'Période n° %number%' -'Add an accompanying period in the past': Ajouter une période d'accompagnement dans le passé -Begin a new accompanying period: Commencer une nouvelle période d'accompagnement -Create an accompanying period: Créer une période d'accompagnement -'A period has been created.': Une période d'accompagnement a été créée. -'Error! Period not created!': La période d'accompagnement n'a pas été créée. -Update accompanying period: Mettre à jour une période d'accompagnement -'An accompanying period has been updated.': Une période d'accompagnement a été mise à jour -'Error when updating the period': Erreur pendant la mise à jour de la période d'accompagnement. -'An accompanying period has been closed.': Une période d'accompagnement a été fermée. -'Error! Period not closed!': "Erreur: la période d'accompagnement n'a pas été fermée." -'An accompanying period has been opened.': Une période d'accompagnement a été ouverte. +'Add an accompanying period in the past': Ajouter un parcours d'accompagnement dans le passé +Begin a new accompanying period: Commencer un nouveau parcours d'accompagnement +Create an accompanying period: Créer un parcours d'accompagnement +'A period has been created.': Un parcours d'accompagnement a été créé. +'Error! Period not created!': Le parcours d'accompagnement n'a pas été créé. +Update accompanying period: Mettre à jour un parcours d'accompagnement +'An accompanying period has been updated.': Un parcours d'accompagnement a été mise à jour +'Error when updating the period': Erreur pendant la mise à jour du parcours d'accompagnement. +'An accompanying period has been closed.': Un parcours d'accompagnement a été fermée. +'Error! Period not closed!': "Erreur: le parcours d'accompagnement n'a pas été fermé." +'An accompanying period has been opened.': Un parcours d'accompagnement a été ouvert. 'No remark': Pas de remarque -'Period not opened': "La période d'accompagnement n'a pas été ouverte" -"Period not opened : form is invalid": "La période n'a pas été ouverte: le formulaire est invalide." +'Period not opened': "Le parcours d'accompagnement n'a pas été ouvert" +"Period not opened : form is invalid": "Le parcours d'accompagnement n'a pas été ouverte: le formulaire est invalide." 'Closing motive': 'Motif de clôture' This course is closed: Ce parcours est clôturé Close accompanying course: Clôturer le parcours Re-open accompanying course: Ré-ouvrir le parcours -'Person details': 'Détails de la personne' +'Person details': "Détails de l'usager" 'Update details for %name%': 'Modifier détails de %name%' -An accompanying period ends: Une periode d'accompagnement se clôture -An accompanying period starts: Une période d'accompagnement est ouverte -Any accompanying periods are open: Aucune période d'accompagnement ouverte -An accompanying period is open: Une période d'accompagnement est ouverte -Accompanying period list: Périodes d'accompagnement -Accompanying period list for person: Périodes d'accompagnement de la personne +An accompanying period ends: Un parcours d'accompagnement se clôture +An accompanying period starts: Un parcours d'accompagnement est ouvert +Any accompanying periods are open: Aucune parcours d'accompagnement ouvert +An accompanying period is open: Un parcours d'accompagnement est ouvert +Accompanying period list: Parcours d'accompagnement +Accompanying period list for person: Parcours d'accompagnement de l'usager Accompanying period: Parcours d'accompagnement Any accompanying period: Aucun parcours d'accompagnement period: Parcours @@ -200,17 +200,17 @@ New accompanying course: Nouveau parcours d'accompagnement Choose a motive: Motif de fermeture Re-open accompanying period: Ré-ouvrir Re-Open a period: Ré-ouvrir -Are you sure you want to re-open this period ?: Êtes-vous sûr de vouloir ré-ouvrir cette période d'accompagnement ? -'The period has been re-opened': La période d'accompagnement a été ré-ouverte. +Are you sure you want to re-open this period ?: Êtes-vous sûr de vouloir ré-ouvrir cet parcours d'accompagnement ? +'The period has been re-opened': Le parcours d'accompagnement a été ré-ouverte. Pediod closing form is not valid: Le formulaire n'est pas valide Accompanying user: Accompagnant No accompanying user: Aucun accompagnant No data given: Pas d'information -Participants: Personnes impliquées +Participants: Usagers impliquées Create an accompanying course: Créer un parcours Accompanying courses of users: Parcours des utilisateurs This accompanying course is still a draft: Ce parcours est encore à l'état brouillon. -Associated peoples: Personnes concernées +Associated peoples: Usagers concernées Resources: Interlocuteurs privilégiés Any requestor to this accompanying course: Aucun demandeur pour ce parcours Social action: Action d'accompagnement @@ -222,47 +222,47 @@ Social issues: Problématiques sociales Pick a social issue: Choisir une problématique sociale Last events on accompanying course: Dernières actions de suivi Edit & activate accompanying course: Modifier et valider -See accompanying periods: Voir toutes les périodes d'accompagnement -See accompanying period: Voir la période -Edit accompanying period: Modifier la période -See this period: Voir cette période +See accompanying periods: Voir tous les parcours d'accompagnement +See accompanying period: Voir le parcours +Edit accompanying period: Modifier le parcours +See this period: Voir cet parcours Requestor: Demandeur No requestor: Pas de demandeur No resources: "Pas d'interlocuteurs privilégiés" -Persons associated: Personnes concernés +Persons associated: Usagers concernés Referrer: Référent Referrers: Agents traitants Referrer2: Agent traitant No referrer: Pas d'agent traitant -Some peoples does not belong to any household currently. Add them to an household soon: Certaines personnes n'appartiennent à aucun ménage actuellement. Renseignez leur ménage dès que possible. +Some peoples does not belong to any household currently. Add them to an household soon: Certains usagers n'appartiennent à aucun ménage actuellement. Renseignez leur ménage dès que possible. Add to household now: Ajouter à un ménage Any resource for this accompanying course: Aucun interlocuteur privilégié pour ce parcours course.draft: Brouillon course.closed: Clôturé Origin: Origine de la demande -Delete accompanying period: Supprimer la période d'accompagnement -Are you sure you want to remove the accompanying period "%id%" ?: Êtes-vous sûr de vouloir supprimer la période d'accompagnement %id% ? -The accompanying course has been successfully removed.: La période d'accompagnement a été supprimée. +Delete accompanying period: Supprimer le parcours d'accompagnement +Are you sure you want to remove the accompanying period "%id%" ?: Êtes-vous sûr de vouloir supprimer le parcours d'accompagnement %id% ? +The accompanying course has been successfully removed.: Le parcours d'accompagnement a été supprimé. Concerned scopes: Services concernés # person resource person_resources_menu: "Personnes ressources" -Person resources: "Ressources de la personne" -Add a person resource: "Ajouter une ressource" -edit resource: "Modifier ressource" -Remove resource: "Supprimer ressource" +Person resources: "Personnes ressources de l'usager" +Add a person resource: "Ajouter une person ressource" +edit resource: "Modifier la ressource" +Remove resource: "Supprimer la ressource" Are you sure you want to remove the resource for "%name%" ?: Étes-vous sûr de vouloir supprimer cette ressource de %name%? The resource has been successfully removed.: "La ressource a été supprimée." -List of resources: "Liste des ressources" -There are no available resources: "Aucun ressource" +List of resources: "Liste des personnes ressources" +There are no available resources: "Aucun personne ressource" no comment found: "Aucun commentaire" Select a type: "Choisissez un type" -Select a person: "Choisissez une personne" +Select a person: "Choisissez un usager" Kind: "Type" # pickAPersonType -Pick a person: Choisir une personne +Pick a person: Choisir un usager # Address No address given: Pas d'adresse renseignée @@ -277,19 +277,19 @@ New address : Nouvelle adresse New address for %name% : Nouvelle adresse pour %name% The new address was created successfully: La nouvelle adresse a été créée Add an address: Ajouter une adresse -Back to the person details: Retour aux détails de la personne +Back to the person details: Retour aux détails de l'usager # Residential address Residential addresses history for %name%: Historique des adresses de résidence de %name% Residential addresses history: Historique des adresses de résidence Add a residential address: Ajouter une adresse de résidence Which kind of residential address would you create ?: Quel type d'adresse de résidence voulez-vous créer? -The address of another person: L'adresse d'une autre personne +The address of another person: L'adresse d'une autre usager A new address: Une nouvelle adresse -residential_address_person_explanation: L'adresse sera positionnée auprès d'une personne. Lorsque la personne déménage, l'adresse de résidence suivra également cette personne +residential_address_person_explanation: L'adresse sera positionnée auprès d'un usager. Lorsque l'usager déménage, l'adresse de résidence suivra également cette usager residential_address_new_address_explanation: Créer une nouvelle adresse. L'adresse sera fixe. New residential address: Nouvelle adresse de résidence -Host person: Choisir l'adresse d'une personne +Host person: Choisir l'adresse d'un usager The new residential address was created successfully: La nouvelle adresse de résidence a été créée Edit a residential address: Modifier l'addresse de résidence The residential address was updated successfully: L'adresse de résidence a été mise à jour @@ -303,29 +303,29 @@ Residential address had been deleted: L'adresse de résidence a été supprimée #timeline Timeline: Historique -Closing the accompanying period: Fermeture de la période d'accompagnement -Opening the accompanying period: Ouverture d'une période d'accompagnement +Closing the accompanying period: Fermeture du parcours d'accompagnement +Opening the accompanying period: Ouverture d'un parcours d'accompagnement 'Timeline for %name%': 'Historique de %name%' # ROLES -CHILL_PERSON_SEE: Voir les personnes -CHILL_PERSON_UPDATE: Modifier les personnes -CHILL_PERSON_CREATE: Ajouter des personnes -CHILL_PERSON_STATS: Statistiques sur les personnes -CHILL_PERSON_LISTS: Liste des personnes -CHILL_PERSON_DUPLICATE: Gérer les doublons de personnes +CHILL_PERSON_SEE: Voir les usagers +CHILL_PERSON_UPDATE: Modifier les usagers +CHILL_PERSON_CREATE: Ajouter des usagers +CHILL_PERSON_STATS: Statistiques sur les usagers +CHILL_PERSON_LISTS: Liste des usagers +CHILL_PERSON_DUPLICATE: Gérer les doublons d'usagers -CHILL_PERSON_ACCOMPANYING_PERIOD_SEE: Vision simplifiée d'une période d'accompagnement -CHILL_PERSON_ACCOMPANYING_PERIOD_CONFIDENTIAL: Voir et modifier les périodes d'accompagnement confidentielles -CHILL_PERSON_ACCOMPANYING_PERIOD_DELETE: Supprimer une période d'accompagnement +CHILL_PERSON_ACCOMPANYING_PERIOD_SEE: Vision simplifiée d'un parcours d'accompagnement +CHILL_PERSON_ACCOMPANYING_PERIOD_CONFIDENTIAL: Voir et modifier les parcours d'accompagnement confidentielles +CHILL_PERSON_ACCOMPANYING_PERIOD_DELETE: Supprimer un pacours d'accompagnement CHILL_PERSON_ACCOMPANYING_PERIOD_RE_OPEN: Ré-ouvrir un parcours clotûré CHILL_PERSON_ACCOMPANYING_PERIOD_TOGGLE_CONFIDENTIAL_ALL: Modifier la confidentialité de tous les parcours -CHILL_PERSON_ACCOMPANYING_PERIOD_CRUD_CONFIDENTIAL: Voir les périodes d'accompagnement confidentielles -CHILL_PERSON_ACCOMPANYING_PERIOD_CREATE: Créer une période d'accompagnement -CHILL_PERSON_ACCOMPANYING_PERIOD_UPDATE: Modifier une période d'accompagnement -CHILL_PERSON_ACCOMPANYING_PERIOD_FULL: Voir les détails, créer, supprimer et mettre à jour une période d'accompagnement +CHILL_PERSON_ACCOMPANYING_PERIOD_CRUD_CONFIDENTIAL: Voir les parcours d'accompagnement confidentiels +CHILL_PERSON_ACCOMPANYING_PERIOD_CREATE: Créer un parcours d'accompagnement +CHILL_PERSON_ACCOMPANYING_PERIOD_UPDATE: Modifier un parcours d'accompagnement +CHILL_PERSON_ACCOMPANYING_PERIOD_FULL: Voir les détails, créer, supprimer et mettre à jour un parcours d'accompagnement CHILL_PERSON_ACCOMPANYING_COURSE_REASSIGN_BULK: Réassigner les parcours en lot -CHILL_PERSON_ACCOMPANYING_PERIOD_SEE_DETAILS: Voir les détails d'une période d'accompagnement +CHILL_PERSON_ACCOMPANYING_PERIOD_SEE_DETAILS: Voir les détails d'un parcours d'accompagnement CHILL_PERSON_ACCOMPANYING_PERIOD_STATS: Statistiques sur les parcours d'accompagnement CHILL_MAIN_ACCOMPANYING_PERIOD_WORK_CREATE: Créer une action d'accompagnement @@ -342,28 +342,28 @@ CHILL_PERSON_HOUSEHOLD_EDIT: Modifier les ménages CHILL_PERSON_HOUSEHOLD_STATS: Statistiques sur les ménages #period -Period closed!: Période clôturée! +Period closed!: Parcours clôturé! Pediod closing form is not valide: Le formulaire de fermeture n'est pas valide #widget ## widget person_list -Accompanyied people: Personnes accompagnées +Accompanyied people: Usagers accompagnés ## exports -Exports of persons: Exports des personnes -Count people by various parameters.: Compte le nombre de personnes en fonction de différents filtres. -Count people: Nombre de personnes -List peoples: Liste des personnes -Create a list of people according to various filters.: Crée une liste des personnes selon différents filtres. +Exports of persons: Exports des usagers +Count people by various parameters.: Compte le nombre d'usagers en fonction de différents filtres. +Count people: Nombre d'usagers +List peoples: Liste des usagers +Create a list of people according to various filters.: Crée une liste d'usagers selon différents filtres. Fields to include in export: Champs à inclure dans l'export Address valid at this date: Addresse valide à cette date Data valid at this date: Données valides à cette date Data regarding center, addresses, and so on will be computed at this date: Les données concernant le centre, l'adresse, le ménage, sera calculé à cette date. List duplicates: Liste des doublons -Create a list of duplicate people: Créer la liste des personnes détectées comme doublons. -Count people participating in an accompanying course: Nombre de personnes concernées par un parcours -Count people participating in an accompanying course by various parameters.: Compte le nombre de personnes concernées par un parcours +Create a list of duplicate people: Créer la liste des usagers détectés comme doublons. +Count people participating in an accompanying course: Nombre d'usagers concernés par un parcours +Count people participating in an accompanying course by various parameters.: Compte le nombre d'usagers concernées par un parcours Exports of accompanying courses: Exports des parcours d'accompagnement Count accompanying courses: Nombre de parcours @@ -384,33 +384,33 @@ Count evaluation by various parameters.: Compte le nombre d'évaluations selon d Exports of households: Exports des ménages ## persons filters -Filter by person gender: Filtrer les personnes par genre +Filter by person gender: Filtrer les usagers par genre Accepted genders: Genres acceptés 'Filtering by genders: only %genders%': 'Filtré par genre: seulement %genders%' -Filter by person's nationality: Filtrer les personnes par nationalité +Filter by person's nationality: Filtrer les usagers par nationalité Nationalities: Nationalités Choose countries: Choisir les nationalités 'Filtered by nationality : %nationalities%': 'Filtré par nationalité : seulement %nationalities%' -Filter by person's birthdate: Filtrer les personnes par date de naissance +Filter by person's birthdate: Filtrer les usagers par date de naissance Born after this date: Nés après cette date Born before this date: Nés avant cette date This field should not be empty: Ce champ ne peut pas être vide This date should be after the date given in "born after" field: Cette date doit être après la date donnée du le champ "nés après le" -"Filtered by person's birthdate: between %date_from% and %date_to%": "Filtré par date de naissance de la personne: uniquement nés entre le %date_from% et %date_to%" +"Filtered by person's birthdate: between %date_from% and %date_to%": "Filtré par date de naissance de l'usager: uniquement nés entre le %date_from% et %date_to%" -Filter by person's deathdate: Filtrer les personnes par date de décès -"Filtered by person's deathdate: between %date_from% and %date_to%": "Filtré par date de naissance de la personne: uniquement nés entre le %date_from% et %date_to%" +Filter by person's deathdate: Filtrer les usagers par date de décès. +"Filtered by person's deathdate: between %date_from% and %date_to%": "Filtré par date de naissance de l'usager: uniquement nés entre le %date_from% et %date_to%" Death after this date: Décédé après cette date Deathdate before: Décédé avant cette date Alive: Vivant Deceased: Décédé Filter in relation to this date: Filtrer par rapport à cette date -"Filtered by a state of %deadOrAlive%: at this date %date_calc%": Filtré par personnes qui sont %deadOrAlive% à cette date %date_calc% +"Filtered by a state of %deadOrAlive%: at this date %date_calc%": Filtré par usagers qui sont %deadOrAlive% à cette date %date_calc% -Filter by person's age: Filtrer les personnes par age -"Filtered by person's age: between %min_age% and %max_age%": "Filtré par âge de la personne entre %min_age% et %max_age%" +Filter by person's age: Filtrer les usagers par age. +"Filtered by person's age: between %min_age% and %max_age%": "Filtré par âge de l'usager entre %min_age% et %max_age%" Minimum age: Âge minimum Maximum age: Âge maximum The minimum age should be less than the maximum age.: L'âge minimum doit être plus bas que l'âge maximum. @@ -420,38 +420,38 @@ Date during which residential address was valid: Date de validité Family composition: Composition familiale Family composition at this time: Composition familiale à cette date. -Filter by person's marital status: Filtrer les personnes par état matrimonial +Filter by person's marital status: Filtrer les usagers par état matrimonial Filtered by person's marital status: Filtré par état matrimonial Marital status at this time: État matrimonial par rapport à cette date -Filter by entrusted child status: Filtrer les personnes "enfant confié" -Filtered by entrusted child status: Uniquement les personnes qui sont "enfant confié" +Filter by entrusted child status: Filtrer les usagers "enfant confié" +Filtered by entrusted child status: Uniquement les usagers qui sont "enfant confié" -Filter by nomadic status: Filtrer les personnes "gens du voyage" -Filtered by nomadic status: Uniquement les personnes qui sont "gens du voyage" +Filter by nomadic status: Filtrer les usagers "gens du voyage" +Filtered by nomadic status: Uniquement les usagers qui sont "gens du voyage" -"Filter by person's who have a residential address located at another user": Filtrer les personnes qui ont une addresse de résidence chez une autre personne -"Filtered by person's who have a residential address located at another user": Uniquement les personnes qui ont une addresse de résidence chez une autre personne +"Filter by person's who have a residential address located at another user": Filtrer les usagers qui ont une addresse de résidence chez une autre usager +"Filtered by person's who have a residential address located at another user": Uniquement les usagers qui ont une addresse de résidence chez une autre usager -Filter by person's that are alive or have deceased at a certain date: Filtrer les personnes qui sont décédées ou vivantes à une certaine date -Filtered by person's that are alive or have deceased at a certain date: Uniquement les personnes qui sont décédées ou vivantes à une certaine date +Filter by person's that are alive or have deceased at a certain date: Filtrer les usagers qui sont décédés ou vivantes à une certaine date +Filtered by person's that are alive or have deceased at a certain date: Uniquement les usagers qui sont décédés ou vivantes à une certaine date -"Filter by accompanying period: active period": "Filtrer les personnes par période d'accompagnement: en file active" -Having an accompanying period opened after this date: Ayant une période d'accompagnement ouverte après cette date -Having an accompanying period ending before this date, or still opened at this date: Ayant une période d'accompagnement fermée après cette date, ou toujours ouverte à cette date -"Filtered by accompanying period: persons having an accompanying period opened after the %date_from% and closed before the %date_to% (or still opened at the %date_to%)": "Filtré par période d'accompagnement: personnes ayant une période d'accompagnement ouverte après le %date_from%, et cloturée le %date_to% (ou toujours ouverte le %date_to%)" +"Filter by accompanying period: active period": "Filtrer les usagers par parcours d'accompagnement: en file active" +Having an accompanying period opened after this date: Ayant un parcours d'accompagnement ouverte après cette date +Having an accompanying period ending before this date, or still opened at this date: Ayant un parcours d'accompagnement fermée après cette date, ou toujours ouverte à cette date +"Filtered by accompanying period: persons having an accompanying period opened after the %date_from% and closed before the %date_to% (or still opened at the %date_to%)": "Filtré par parcours d'accompagnement: usagers ayant un parcours d'accompagnement ouvert après le %date_from%, et cloturé le %date_to% (ou toujours ouvert le %date_to%)" -"Filter by accompanying period: starting between two dates": "Filtrer les personnes par période d'accompagnement: début de la période entre deux dates" -"Having an accompanying period opened before this date": "Ayant une période d'accompagnement ouverte avant cette date" -"Filtered by accompanying period: persons having an accompanying period opened between the %date_from% and %date_to%": "Filtrer par période d'accompagnement: ayant une période ouverte entre le %date_from% et le %date_to%" +"Filter by accompanying period: starting between two dates": "Filtrer les usagers par parcours d'accompagnement: début de la période entre deux dates" +"Having an accompanying period opened before this date": "Ayant un parcours d'accompagnement ouvert avant cette date" +"Filtered by accompanying period: persons having an accompanying period opened between the %date_from% and %date_to%": "Filtrer par parcours d'accompagnement: ayant un parcours ouvert entre le %date_from% et le %date_to%" -"Filter by accompanying period: closed between two dates": "Filtrer les personnes par période d'accompagnement: période fermée entre deux dates" -Having an accompanying period closed after this date: Ayant une période d'accompagnement fermée après cette date -"Having an accompanying period closed before this date": "Ayant une période d'accompagnement fermée avant cette date" -"Filtered by accompanying period: persons having an accompanying period closed between the %date_from% and %date_to%": "Filtrer par période d'accompagnement: ayant une période fermée entre le %date_from% et le %date_to%" +"Filter by accompanying period: closed between two dates": "Filtrer les usagers par parcours d'accompagnement: parcours fermé entre deux dates" +Having an accompanying period closed after this date: Ayant un parcours d'accompagnement fermé après cette date +"Having an accompanying period closed before this date": "Ayant un parcours d'accompagnement fermé avant cette date" +"Filtered by accompanying period: persons having an accompanying period closed between the %date_from% and %date_to%": "Filtrer par parcours d'accompagnement: ayant un parcours fermé entre le %date_from% et le %date_to%" -Filter by person having an activity in a period: Filtrer les personnes ayant eu une échange pendant la période donnée -Filtered by person having an activity between %date_from% and %date_to% with reasons %reasons_name%: Uniquement les personnes associées à une échange entre %date_from% et %date_to% avec les sujets %reasons_name% +Filter by person having an activity in a period: Filtrer les usagers ayant eu un échange pendant la période donnée +Filtered by person having an activity between %date_from% and %date_to% with reasons %reasons_name%: Uniquement les usagers associés à un échange entre %date_from% et %date_to% avec les sujets %reasons_name% ## accompanying course filters/aggr @@ -483,8 +483,8 @@ acp_geog_agg_unitname: Zone géographique acp_geog_agg_unitrefid: Clé de la zone géographique Geographical layer: Couche géographique Select a geographical layer: Choisir une couche géographique -Group people by geographical unit based on his address: Grouper les personnes par zone géographique (sur base de l'adresse) -Filter by person's geographical unit (based on address): Filter les personnes par zone géographique (sur base de l'adresse) +Group people by geographical unit based on his address: Grouper les usagers par zone géographique (sur base de l'adresse) +Filter by person's geographical unit (based on address): Filter les usagers par zone géographique (sur base de l'adresse) Filter by socialaction: Filtrer les parcours par action d'accompagnement Accepted socialactions: Actions d'accompagnement @@ -500,9 +500,9 @@ Evaluation: Évaluation "Filtered by evaluations: only %evals%": "Filtré par évaluation: uniquement %evals%" Group by evaluation: Grouper les parcours par évaluation -Filter accompanying course by activity type: Filtrer les parcours par type d'activité -Accepted activitytypes: Types d'activités -"Filtered by activity types: only %activitytypes%": "Filtré par type d'activité: seulement %activitytypes%" +Filter accompanying course by activity type: Filtrer les parcours par type d'échange +Accepted activitytypes: Types d'échanges +"Filtered by activity types: only %activitytypes%": "Filtré par type d'échange: seulement %activitytypes%" Filter by origin: Filtrer les parcours par origine du parcours Accepted origins: Origines @@ -520,12 +520,12 @@ Administrative location: Localisation administrative "Filtered by administratives locations: only %locations%": "Filtré par localisation administrative: uniquement %locations%" Group by administrative location: Grouper les parcours par localisation administrative -Filter by requestor: Filtrer les parcours selon la présence du demandeur au sein des personnes concernées +Filter by requestor: Filtrer les parcours selon la présence du demandeur au sein des usagers concernés Accepted choices: '' -is person concerned: Le demandeur est une personne concernée -is other person: Le demandeur est une personne, mais n'est pas concernée +is person concerned: Le demandeur est un usager concerné +is other person: Le demandeur est un usager, mais n'est pas concerné no requestor: Le parcours ne comporte pas de demandeur -"Filtered by requestor: only %choice%": "Filtré par présence du demandeur au sein des personnes concernées: uniquement si %choice%" +"Filtered by requestor: only %choice%": "Filtré par présence du demandeur au sein des usagers concernés: uniquement si %choice%" Group by requestor: Grouper les parcours selon la nature du demandeur Filter by confidential: Filtrer les parcours par confidentialité @@ -647,24 +647,24 @@ Rounded month duration: Durée en mois (arrondie) current duration: en cours duration 0 month: 0 mois (<15 jours) ' months': ' mois' -Group people by nationality: Grouper les personnes par nationalités +Group people by nationality: Grouper les usagers par nationalités Group by level: Grouper par niveau Group by continents: Grouper par continent Group by country: Grouper par pays -Group people by gender: Grouper les personnes par genre -Group people by their professional situation: Grouper les personnes par situation professionelle -Group people by marital status: Grouper les personnes par état matrimonial +Group people by gender: Grouper les usagers par genre +Group people by their professional situation: Grouper les usagers par situation professionelle +Group people by marital status: Grouper les usagers par état matrimonial -Aggregate by household position: Grouper les personnes par position dans le ménage +Aggregate by household position: Grouper les usagers par position dans le ménage Household position in relation to this date: Position dans le ménage par rapport à cette date Household position: Position dans le ménage -Aggregate by age: Grouper les personnes par âge +Aggregate by age: Grouper les usagers par âge Calculate age in relation to this date: Calculer l'âge par rapport à cette date -Group people by country of birth: Grouper les personnes par pays de naissance -Similar persons: Personnes similaires +Group people by country of birth: Grouper les usagers par pays de naissance +Similar persons: Usagers similaires crud: closing_motive: @@ -775,8 +775,8 @@ closing_motive: any parent: Aucun parent new child: Nouvel enfant -Person configuration: Configuration du module "Personnes" -Configuration of person bundle: Configuration du module "Personnes" +Person configuration: Configuration du module "Usagers" +Configuration of person bundle: Configuration du module "Usagers" person_admin: accompanying_period: Parcours d'accompagnement What would you like to configure ?: Que souhaitez-vous configurer ? @@ -784,7 +784,7 @@ person_admin: closing motives list: Liste des motifs de clotûre closing motive explanation: > Les motifs de clotûre donnent des indications sur la fermeture - d'une période d'accompagnement. + d'un parcours d'accompagnement. origin: Origines marital status: États civils marital status list: Liste des états civils @@ -825,11 +825,11 @@ Edit Accompanying Course: Modifier le parcours Close Accompanying Course: Clôturer le parcours Create Accompanying Course: Créer un nouveau parcours Drop Accompanying Course: Supprimer le parcours -This course is located at a temporarily address. You should locate this course to an user: Le parcours est localisé à une adresse temporaire. Il devrait être localisé auprès d'une personne concernée. +This course is located at a temporarily address. You should locate this course to an user: Le parcours est localisé à une adresse temporaire. Il devrait être localisé auprès d'un usager concerné. Accompanying course location: Localisation du parcours This course is located by: Localisé auprès de This course has a temporarily location: Localisation temporaire -Choose a person to locate by: Localiser auprès d'une personne concernée +Choose a person to locate by: Localiser auprès d'un usager concerné Associate at least one member with an household, and set an address to this household: Associez au moins un membre du parcours à un ménage, et indiquez une adresse à ce ménage. Locate by: Localiser auprès de fix it: Compléter @@ -884,7 +884,7 @@ Household configuration: Gestion des ménages # accompanying course work Accompanying Course Actions: Actions d'accompagnements Accompanying Course Action: Action d'accompagnement -Are you sure you want to remove this work of the accompanying period %name% ?: Êtes-vous sûr de vouloir supprimer cette action de la période d'accompagnement %name% ? +Are you sure you want to remove this work of the accompanying period %name% ?: Êtes-vous sûr de vouloir supprimer cette action du parcours d'accompagnement %name% ? The accompanying period work has been successfully removed.: L'action d'accompagnement a été supprimée. accompanying_course_work: create: Créer une action @@ -908,6 +908,7 @@ accompanying_course_work: remove: Supprimer une action d'accompagnement social_evaluation: Évaluation private_comment: Commentaire privé + timeSpent: Temps de rédaction # @@ -915,37 +916,37 @@ Person addresses: Adresses de résidence Household addresses: Adresses de domicile Insert an address: Insérer une adresse see social issues: Voir les problématiques sociales -see persons associated: Voir les personnes concernées +see persons associated: Voir les usagers concernés docgen: Accompanying Period basic: "Parcours d'accompagnement (basique)" Accompanying period work: "Action d'accompagnement" Accompanying period work context: "Evaluation des actions d'accompagnement" - Main person: Personne principale - person 1: Première personne - person 2: Seconde personne - Ask for main person: Demander à l'utilisateur de préciser la personne principale - Ask for person 1: Demander à l'utilisateur de préciser la première personne - Ask for person 2: Demander à l'utilisateur de préciser la seconde personne + Main person: Usager principal + person 1: Premièr usager + person 2: Second usager + Ask for main person: Demander à l'utilisateur de préciser l'usager principal + Ask for person 1: Demander à l'utilisateur de préciser le premièr usager + Ask for person 2: Demander à l'utilisateur de préciser le second usager A basic context for accompanying period: Contexte pour les parcours A context for accompanying period work: Contexte pour les actions d'accompagnement A context for accompanying period work evaluation: Contexte pour les évaluations dans les actions d'accompagnement - Person basic: Personne (basique) - A basic context for person: Contexte pour les personnes + Person basic: Usager (basique) + A basic context for person: Contexte pour les usagers Label for third party: Label à afficher aux utilisateurs Document title: Titre du document généré period_notification: period_designated_subject: Vous êtes référent d'un parcours d'accompagnement You are designated to a new period: Vous avez été désigné référent d'un parcours d'accompagnement. - Persons are: Les personnes concernées sont les suivantes + Persons are: Les usagers concernés sont les suivantes Social issues are: Les problématiques sociales renseignées sont les suivantes See it online: Visualisez le parcours en ligne - Person locating period has moved: La personne qui localise un parcours a déménagé + Person locating period has moved: L'usager qui localise un parcours a déménagé -You are getting a notification for a period which does not exists any more: Cette notification ne correspond pas à une période d'accompagnement valide. -You are getting a notification for a period you are not allowed to see: La notification fait référence à une période d'accompagnement à laquelle vous n'avez pas accès. -This is the minimal period details: Période d'accompagnement n° +You are getting a notification for a period which does not exists any more: Cette notification ne correspond pas à un parcours d'accompagnement valide. +You are getting a notification for a period you are not allowed to see: La notification fait référence à un parcours d'accompagnement à laquelle vous n'avez pas accès. +This is the minimal period details: Parcours d'accompagnement n° household_composition: No composition yet: Aucune composition familiale renseignée @@ -1009,7 +1010,7 @@ export: person: by_household_composition: Household composition: Composition du ménage - Group course by household composition: Grouper les personnes par composition familiale + Group course by household composition: Grouper les usagers par composition familiale Calc date: Date de calcul de la composition du ménage course: by_referrer: @@ -1053,14 +1054,21 @@ export: Filtered by person's geographical unit (based on address) computed at %datecalc%, only %units%: Filtré par unité géographique (sur base de l'adresse), calculé le %datecalc%, seulement %units% person: by_composition: - Filter by household composition: Filtrer les personnes par composition du ménage + Filter by household composition: Filtrer les usagers par composition du ménage Accepted compositions: Composition de ménages Date calc: Date de calcul 'Filtered by composition at %date%: only %compositions%': 'Filtré par composition du ménage, le %date%, seulement %compositions%' by_no_composition: - Filter persons without household composition: Filtrer les personnes sans composition de ménage (ni ménage) - Persons filtered by no composition at %date%: Uniquement les personnes sans composition de ménage à la date du %date% + Filter persons without household composition: Filtrer les usagers sans composition de ménage (ni ménage) + Persons filtered by no composition at %date%: Uniquement les usagers sans composition de ménage à la date du %date% Date calc: Date de calcul + by_address_ref_status: + Filter by person's address ref status: Filtrer par comparaison avec l'adresse de référence + to_review: Diffère de l'adresse de référence + reviewed: Diffère de l'adresse de référence mais conservé par l'utilisateur + match: Identique à l'adresse de référence + Filtered by person\'s address status computed at %datecalc%, only %statuses%: Filtré par comparaison à l'adresse de référence, calculé à %datecalc%, seulement %statuses% + Status: Statut course: by_user_scope: @@ -1076,11 +1084,11 @@ export: 'Filtered by creator job: only %jobs%': 'Filtré par métier du créateur: seulement %jobs%' list: person_with_acp: - List peoples having an accompanying period: Liste des personnes ayant un parcours d'accompagnement - Create a list of people having an accompaying periods, according to various filters.: Génère une liste des personnes ayant un parcours d'accompagnement, selon différents critères liés au parcours ou à l'usager + List peoples having an accompanying period: Liste des usagers ayant un parcours d'accompagnement + Create a list of people having an accompaying periods, according to various filters.: Génère une liste des usagers ayant un parcours d'accompagnement, selon différents critères liés au parcours ou à l'usager acp: - List of accompanying periods: Liste de périodes d'accompagnements - Generate a list of accompanying periods, filtered on different parameters.: Génère une liste des périodes d'accompagnement, filtrée sur différents paramètres. + List of accompanying periods: Liste des parcours d'accompagnements + Generate a list of accompanying periods, filtered on different parameters.: Génère une liste des parcours d'accompagnement, filtrée sur différents paramètres. Date of calculation for associated elements: Date de calcul des éléments associés The associated referree, localisation, and other elements will be valid at this date: Les éléments associés, comme la localisation, le référent et d'autres éléments seront valides à cette date id: Identifiant du parcours @@ -1107,8 +1115,8 @@ export: locationPersonId: Identifiant de l'usager auprès duquel le parcours est localisé acpaddress_fieldscountry: Pays de l'adresse isRequestorPerson: Le demandeur est-il un usager ? - requestorPersonId: Identifiant du demandeur personne - acprequestorPerson: Nom du demandeur personne + requestorPersonId: Identifiant du demandeur usager + acprequestorPerson: Nom du demandeur usager scopes: Services socialIssues: Problématiques sociales eval: @@ -1139,6 +1147,7 @@ export: updatedAt: Date de modification createdBy: Créé par updatedBy: Modifié par + timeSpent: Temps de rédaction (minutes) acpw: List of accompanying period works: Liste des actions List description: Génère une liste des actions d'accompagnement, filtrée sur différents paramètres. diff --git a/src/Bundle/ChillPersonBundle/translations/messages.nl.yml b/src/Bundle/ChillPersonBundle/translations/messages.nl.yml index 2ecbd41a0..941f9d585 100644 --- a/src/Bundle/ChillPersonBundle/translations/messages.nl.yml +++ b/src/Bundle/ChillPersonBundle/translations/messages.nl.yml @@ -125,7 +125,7 @@ address_country_code: Landscode 'Alreay existing person': 'Reeds bestaand persoonsdossier' 'Add the person': 'Persoon toevoegen' 'Add the person and create an accompanying period': "Persoon & hulpverleningstraject aanmaken" -'Add the person and create a household': "Persoon & gezin aanmaken" +'Add the person and create a household': "Persoon & huishouden aanmaken" Show person: Toon persoonsdossier 'Confirm the creation': 'Aanmaak dossier bevestigen' 'You will create this person': 'U zal het volgende dossier aanmaken' @@ -177,9 +177,9 @@ An accompanying period ends: Een hulpverleningstraject loopt op zijn einde An accompanying period starts: Een hulpverleningstraject gaat van start Any accompanying periods are open: Geen enkel hulpverleningstraject open An accompanying period is open: Een hulpverleningstraject staat open -Accompanying period list: Hulpverleningstraject +Accompanying period list: Hulpverleningstrajecten Accompanying period list for person: Hulpverleningstrajecten van persoon -Accompanying period: Hulpverleningstraject +Accompanying period: Hulpverleningstrajecten Any accompanying period: Geen enkel hulpverleningstraject period: Hulpverleningstraject New accompanying course: Nieuw hulpverleningstraject @@ -215,8 +215,8 @@ No resources: "Geen hulpverlening partners" Persons associated: Betrokken personen Referrer: Doorverwijzer Referrers: Doorverwijzers -Some peoples does not belong to any household currently. Add them to an household soon: Sommige personen maken nog geen deel uit van een gezin. Voeg ze zo snel mogelijk aan gezin toe. -Add to household now: Toevoegen aan een gezin +Some peoples does not belong to any household currently. Add them to an household soon: Sommige personen maken nog geen deel uit van een huishouden. Voeg ze zo snel mogelijk aan huishouden toe. +Add to household now: Toevoegen aan een huishouden Any resource for this accompanying course: Geen enkele hulpverlening partner course.draft: Ontwerp course.closed: Afgesloten @@ -458,7 +458,7 @@ Accompanying course location: Locatie van hulpverleningstraject This course is located by: Locatie bij This course has a temporarily location: Voorlopige locatie Choose a person to locate by: Adres van persoon toewijzen -Associate at least one member with an household, and set an address to this household: Associeer minstens één betrokken persoon in dit hulpverleningstraject met een gezin en wijs een adres toe aan dit gezin. +Associate at least one member with an household, and set an address to this household: Associeer minstens één betrokken persoon in dit hulpverleningstraject met een huishouden en wijs een adres toe aan dit huishouden. Locate by: Adres toewijzen fix it: Aanvullen accompanying_course: @@ -480,23 +480,23 @@ accompanying_course_comment: Read more: Meer lezen.. # Household -Household: Gezin +Household: Huishouden Summary: Samenvatting -Members: Gezinsleden +Members: Leden huishouden Addresses: Addressen Move household: Nieuwe verhuis Addresses history for household: Historiek adressen -Household accompanying period: Hulpverleningstrajecten van gezin -Household summary: Samenvatting gezin -Edit household address: Adres gezin bijwerken -Show household: Gezin bekijken -Back to household: Terugkeren naar gezin -Remove household composition: Gezinssamenstelling verwijderen -Are you sure you want to remove this composition?: Bent u zeker deze gezinssamenstelling te willen verwijderen? -Concerns household n°%id%: Betrokken gezin n°%id% -Composition: Gezinssamenstelling +Household accompanying period: Hulpverleningstrajecten van huishouden +Household summary: Samenvatting huishouden +Edit household address: Adres huishouden bijwerken +Show household: huishouden bekijken +Back to household: Terugkeren naar huishouden +Remove household composition: huishoudenssamenstelling verwijderen +Are you sure you want to remove this composition?: Bent u zeker deze huishoudenssamenstelling te willen verwijderen? +Concerns household n°%id%: Betrokken huishouden n°%id% +Composition: huishoudenssamenstelling Budget: Budget -The composition has been successfully removed.: De gezinssamenstelling werd verwijdert. +The composition has been successfully removed.: De huishoudenssamenstelling werd verwijdert. # accompanying course work Accompanying Course Actions: Hulpverleningsmaatregelen @@ -560,16 +560,16 @@ You are getting a notification for a period you are not allowed to see: De notif This is the minimal period details: Hulpverleningstraject n° household_composition: - No composition yet: Geen enkele gezinssamenstelling toegewezen - Compositions: Gezinssamenstelling + No composition yet: Geen enkele huishoudenssamenstelling toegewezen + Compositions: huishoudenssamenstelling endDate: Einddatum - numberOfChildren: Aantal kinderen in het gezin - Household composition: Gezinssamenstelling - Composition added: Informatie over de gezinssamenstelling toegevoegd - Currently no composition: Geen enkele gezinssamenstelling toegewezen - Add a composition: Een gezinssamenstelling toevoegen - Update composition: Gezinssamenstelling bijwerken - Create: Een nieuwe gezinssamenstelling toewijzen + numberOfChildren: Aantal kinderen in het huishouden + Household composition: huishoudenssamenstelling + Composition added: Informatie over de huishoudenssamenstelling toegevoegd + Currently no composition: Geen enkele huishoudenssamenstelling toegewezen + Add a composition: Een huishoudenssamenstelling toevoegen + Update composition: huishoudenssamenstelling bijwerken + Create: Een nieuwe huishoudenssamenstelling toewijzen # docgen Linked evaluations: Gerelateerde evaluaties diff --git a/src/Bundle/ChillPersonBundle/translations/validators.fr.yml b/src/Bundle/ChillPersonBundle/translations/validators.fr.yml index 496a84921..f005755b1 100644 --- a/src/Bundle/ChillPersonBundle/translations/validators.fr.yml +++ b/src/Bundle/ChillPersonBundle/translations/validators.fr.yml @@ -10,7 +10,7 @@ 'Opening date can not be null': 'La date d''ouverure ne peut être nulle' 'Closing date is not valid': 'La date de fermeture n''est pas valide' 'Closing date can not be null': 'La date de fermeture ne peut être nulle' -The date of closing is before the date of opening: La période de fermeture est avant la période d'ouverture +The date of closing is before the date of opening: La date de fermeture est avant la date d'ouverture The closing date must be later than the date of creation: La date de clôture doit être postérieure à la date de création du parcours The birthdate must be before %date%: La date de naissance doit être avant le %date% 'Invalid phone number: it should begin with the international prefix starting with "+", hold only digits and be smaller than 20 characters. Ex: +33123456789': 'Numéro de téléphone invalide: il doit commencer par le préfixe international précédé de "+", ne comporter que des chiffres et faire moins de 20 caractères. Ex: +31623456789' @@ -47,19 +47,19 @@ household: max_holder_overflowed: Il ne peut y avoir plus de deux titulaires simultanément. Or, avec cette modification, ce nombre sera dépassé entre le {{ start }} et le {{ end }}. household_membership: The end date must be after start date: La date de la fin de l'appartenance doit être postérieure à la date de début. - Person with membership covering: Une personne ne peut pas appartenir à deux ménages simultanément. Or, avec cette modification, %person_name% appartiendrait à %nbHousehold% ménages à partir du %from%. + Person with membership covering: Un usager ne peut pas appartenir à deux ménages simultanément. Or, avec cette modification, %person_name% appartiendrait à %nbHousehold% ménages à partir du %from%. # Accompanying period '{{ name }} is already associated to this accompanying course.': '{{ name }} est déjà associé à ce parcours.' A course must contains at least one social issue: 'Un parcours doit être associé à au moins une problématique sociale' A course must be associated to at least one scope: 'Un parcours doit être associé à au moins un service' -The social %name% issue cannot be deleted because it is associated with an activity or an action: 'La problématique sociale "%name%" ne peut pas être supprimée car elle est associée à une activité ou une action' +The social %name% issue cannot be deleted because it is associated with an activity or an action: 'La problématique sociale "%name%" ne peut pas être supprimée car elle est associée à un échange ou une action' A confidential parcours must have a referrer: 'Un parcours confidentiel doit avoir un référent' Only the referrer can change the confidentiality of a parcours: 'Seul le référent peut modifier la confidentialité' # resource You must associate at least one entity: Associez un usager, un tiers ou indiquez une description libre -You cannot associate a resource with the same person: Vous ne pouvez pas ajouter la personne elle-même en tant que ressource. +You cannot associate a resource with the same person: Vous ne pouvez pas ajouter l'usager lui-même en tant que ressource. #location The period must remain located: 'Un parcours doit être localisé' @@ -67,7 +67,10 @@ The person where the course is located must be associated to the course. Change #relationship relationship: - duplicate: Une relation de filiation existe déjà entre ces 2 personnes + duplicate: Une relation de filiation existe déjà entre ces 2 usagers person_creation: If you want to create an household, an address is required: Pour la création d'un ménage, une adresse est requise + +accompanying_course_work: + The endDate should be greater or equal than the start date: La date de fin doit être égale ou supérieure à la date de début diff --git a/src/Bundle/ChillReportBundle/Export/Export/ReportList.php b/src/Bundle/ChillReportBundle/Export/Export/ReportList.php index d06ebb0f6..21606d807 100644 --- a/src/Bundle/ChillReportBundle/Export/Export/ReportList.php +++ b/src/Bundle/ChillReportBundle/Export/Export/ReportList.php @@ -158,7 +158,7 @@ class ReportList implements ExportElementValidatedInterface, ListInterface ); } - public function getLabels($key, array $values, $data): Closure + public function getLabels($key, array $values, $data) { switch ($key) { case 'person_birthdate': @@ -248,7 +248,7 @@ class ReportList implements ExportElementValidatedInterface, ListInterface ->getRepository(\Chill\MainBundle\Entity\Country::class); // load all countries in a single query - $countryRepository->findBy(['countryCode' => $values]); + $countryRepository->findBy(['countryCode' => $values]); return function ($value) use ($key, $countryRepository) { if ('_header' === $value) { @@ -541,7 +541,7 @@ class ReportList implements ExportElementValidatedInterface, ListInterface . ' | ' . $label; } - if ('_other' === $slugChoice && $cfType->isChecked($cf, $choiceSlug, $decoded)) { + if ('_other' === $slugChoice && $cfType->isChecked($cf, $slugChoice, $decoded)) { return $cfType->extractOtherValue($cf, $decoded); } diff --git a/src/Bundle/ChillReportBundle/Tests/Timeline/TimelineProviderTest.php b/src/Bundle/ChillReportBundle/Tests/Timeline/TimelineProviderTest.php index 6091c51a8..9f39fb87e 100644 --- a/src/Bundle/ChillReportBundle/Tests/Timeline/TimelineProviderTest.php +++ b/src/Bundle/ChillReportBundle/Tests/Timeline/TimelineProviderTest.php @@ -74,7 +74,7 @@ final class TimelineProviderTest extends WebTestCase $report = (new Report()) ->setUser(self::$em->getRepository(\Chill\MainBundle\Entity\User::class) - ->findOneByUsername('center a_social')) + ->findOneByUsername('center a_social')) ->setDate(new DateTime('2015-05-02')) ->setPerson($this->person) ->setCFGroup($this->getHousingCustomFieldsGroup()) @@ -92,7 +92,7 @@ final class TimelineProviderTest extends WebTestCase { //static::$em->refresh($this->person); //static::$em->refresh($this->report); - // static::$em->remove($this->person); + // static::$em->remove($this->person); //static::$em->remove($this->report); } diff --git a/src/Bundle/ChillReportBundle/translations/messages.fr.yml b/src/Bundle/ChillReportBundle/translations/messages.fr.yml index 9cd2d5d8c..cfde70521 100644 --- a/src/Bundle/ChillReportBundle/translations/messages.fr.yml +++ b/src/Bundle/ChillReportBundle/translations/messages.fr.yml @@ -8,7 +8,7 @@ 'Update the report': 'Modifier le rapport' 'Report list': 'Liste des rapports' Details: Détails -Person: Personne +Person: Usager Scope: Cercle Date: Date User: Utilisateur @@ -17,7 +17,7 @@ User: Utilisateur Report data: Données du rapport 'Report view : %name%': 'Rapport : %name%' Report: Rapport -No report registered for this person.: Aucun rapport pour cette personne. +No report registered for this person.: Aucun rapport pour cet usager. #Flash messages 'Success : report created!': "Succès : le rapport a bien été créé !" @@ -52,4 +52,4 @@ CHILL_REPORT_LISTS: Liste des rapports "Report's question": Question du rapport Filter by report's date: Filtrer par date de rapport Report is after this date: Rapports après cette date -Report is before this date: Rapports avant cette date \ No newline at end of file +Report is before this date: Rapports avant cette date diff --git a/src/Bundle/ChillTaskBundle/Controller/TaskController.php b/src/Bundle/ChillTaskBundle/Controller/TaskController.php index 68ae65c99..6525d5572 100644 --- a/src/Bundle/ChillTaskBundle/Controller/TaskController.php +++ b/src/Bundle/ChillTaskBundle/Controller/TaskController.php @@ -83,7 +83,7 @@ class TaskController extends AbstractController if (null === $task) { throw $this->createNotFoundException("task with id '{$taskId}' and type " - . "'{$type}' does not exists"); + . "'{$kind}' does not exists"); } $workflow = $registry->get($task); diff --git a/src/Bundle/ChillTaskBundle/translations/messages.fr.yml b/src/Bundle/ChillTaskBundle/translations/messages.fr.yml index 8d1d2b39d..d437baac2 100644 --- a/src/Bundle/ChillTaskBundle/translations/messages.fr.yml +++ b/src/Bundle/ChillTaskBundle/translations/messages.fr.yml @@ -14,7 +14,7 @@ Scope: Cercle "Unit": "" Task: Tâche Details: Détails -Person: Personne +Person: Usager Date: Date Dates: Dates User: Utilisateur @@ -49,7 +49,7 @@ User: Utilisateur "Tasks for {{ name }}": "Tâches pour {{ name }}" "No description": "Pas de description" "No dates specified": "Dates non spécifiées" -"No one assignee": "Aucune personne assignée" +"No one assignee": "Aucune usager assigné" "Task types": Types de tâches Days: Jour(s) Weeks: Semaine(s) @@ -59,7 +59,7 @@ Filter the tasks: Filtrer les tâches Filter: Filtrer Any user: Tous les utilisateurs Unassigned: Non assigné -Associated person: Personne associée +Associated person: Usager associé Default task: Tâche par défaut Not assigned: Aucun utilisateur assigné For person: Pour @@ -117,5 +117,5 @@ CHILL_TASK_TASK_DELETE: Supprimer une tâche CHILL_TASK_TASK_SHOW: Voir une tâche CHILL_TASK_TASK_UPDATE: Modifier une tâche CHILL_TASK_TASK_CREATE_FOR_COURSE: Créer une tâche pour un parcours -CHILL_TASK_TASK_CREATE_FOR_PERSON: Créer une tâche pour une personne +CHILL_TASK_TASK_CREATE_FOR_PERSON: Créer une tâche pour un usager diff --git a/src/Bundle/ChillThirdPartyBundle/DataFixtures/ORM/LoadThirdParty.php b/src/Bundle/ChillThirdPartyBundle/DataFixtures/ORM/LoadThirdParty.php index 058fa119d..6b40f01b9 100644 --- a/src/Bundle/ChillThirdPartyBundle/DataFixtures/ORM/LoadThirdParty.php +++ b/src/Bundle/ChillThirdPartyBundle/DataFixtures/ORM/LoadThirdParty.php @@ -66,22 +66,6 @@ class LoadThirdParty extends Fixture implements DependentFixtureInterface $manager->flush(); } - private function createAddress(): ObjectSet - { - $loader = new NativeLoader(); - - return $loader->loadData([ - Address::class => [ - 'address1' => [ - 'name' => '', - 'telephone' => $this->phoneNumberUtil->getExampleNumber('FR'), - 'email' => '', - 'comment' => '', - ], - ], - ]); - } - private function getCenters(): Iterator { $references = array_map( diff --git a/src/Bundle/ChillThirdPartyBundle/DependencyInjection/ChillThirdPartyExtension.php b/src/Bundle/ChillThirdPartyBundle/DependencyInjection/ChillThirdPartyExtension.php index 76742951b..3c870449c 100644 --- a/src/Bundle/ChillThirdPartyBundle/DependencyInjection/ChillThirdPartyExtension.php +++ b/src/Bundle/ChillThirdPartyBundle/DependencyInjection/ChillThirdPartyExtension.php @@ -151,21 +151,6 @@ class ChillThirdPartyExtension extends Extension implements PrependExtensionInte ], ], ], - [ - 'class' => \Chill\ThirdPartyBundle\Entity\ThirdPartyProfession::class, - // 'controller' => \Chill\MainBundle\Controller\ProfessionApiController::class, - 'name' => 'profession', - 'base_path' => '/api/1.0/thirdparty/professions', - 'base_role' => 'ROLE_USER', - 'actions' => [ - '_index' => [ - 'methods' => [ - Request::METHOD_GET => true, - Request::METHOD_HEAD => true, - ], - ], - ], - ], ], ]); } diff --git a/src/Bundle/ChillThirdPartyBundle/Entity/ThirdParty.php b/src/Bundle/ChillThirdPartyBundle/Entity/ThirdParty.php index 2e8cebfb6..ca24d2442 100644 --- a/src/Bundle/ChillThirdPartyBundle/Entity/ThirdParty.php +++ b/src/Bundle/ChillThirdPartyBundle/Entity/ThirdParty.php @@ -23,6 +23,7 @@ use DateTimeImmutable; use DateTimeInterface; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; +use Doctrine\Common\Collections\ReadableCollection; use Doctrine\ORM\Mapping as ORM; use libphonenumber\PhoneNumber; use Symfony\Component\Serializer\Annotation\Context; @@ -153,7 +154,7 @@ class ThirdParty implements TrackCreationInterface, TrackUpdateInterface * @ORM\OneToMany(targetEntity="Chill\ThirdPartyBundle\Entity\ThirdParty", mappedBy="parent", * cascade={"persist"}, orphanRemoval=true) * - * @var Collection|ThirdParty[] + * @var Collection<(int|string), ThirdParty> * @Assert\Valid(traverse=true) */ private Collection $children; @@ -250,14 +251,11 @@ class ThirdParty implements TrackCreationInterface, TrackUpdateInterface /** * [fr] Qualité. - * - * @var ThirdPartyProfession - * @ORM\ManyToOne(targetEntity="Chill\ThirdPartyBundle\Entity\ThirdPartyProfession") - * ORM\JoinColumn(name="profession", referencedColumnName="id", nullable=true) + * @ORM\Column(name="profession", type="text", nullable=false) * @Groups({"read", "write", "docgen:read", "docgen:read:3party:parent"}) * @Context(normalizationContext={"groups": "docgen:read"}, groups={"docgen:read:3party:parent"}) */ - private ?ThirdPartyProfession $profession = null; + private string $profession = ''; /** * @ORM\Column(name="telephone", type="phone_number", nullable=true) @@ -403,7 +401,7 @@ class ThirdParty implements TrackCreationInterface, TrackUpdateInterface /** * Get the children where active = true. */ - public function getActiveChildren(): Collection + public function getActiveChildren(): ReadableCollection { return $this->children->filter(static fn (ThirdParty $tp) => $tp->getActive()); } @@ -491,9 +489,9 @@ class ThirdParty implements TrackCreationInterface, TrackUpdateInterface } /** - * @return ThirdPartyProfession + * @return string */ - public function getProfession(): ?ThirdPartyProfession + public function getProfession(): string { return $this->profession; } @@ -808,12 +806,9 @@ class ThirdParty implements TrackCreationInterface, TrackUpdateInterface return $this; } - /** - * @return $this - */ - public function setProfession(?ThirdPartyProfession $profession): ThirdParty + public function setProfession(?string $profession): self { - $this->profession = $profession; + $this->profession = (string) $profession; return $this; } diff --git a/src/Bundle/ChillThirdPartyBundle/Form/ChoiceLoader/ThirdPartyChoiceLoader.php b/src/Bundle/ChillThirdPartyBundle/Form/ChoiceLoader/ThirdPartyChoiceLoader.php index 5c990c9ad..7d5bded0f 100644 --- a/src/Bundle/ChillThirdPartyBundle/Form/ChoiceLoader/ThirdPartyChoiceLoader.php +++ b/src/Bundle/ChillThirdPartyBundle/Form/ChoiceLoader/ThirdPartyChoiceLoader.php @@ -23,6 +23,8 @@ use function in_array; /** * Lazy load third parties. + * + * @deprecated As the PickThirdPartyType is deprecated, this should not be in use */ class ThirdPartyChoiceLoader implements ChoiceLoaderInterface { @@ -57,10 +59,6 @@ class ThirdPartyChoiceLoader implements ChoiceLoaderInterface $choices = []; foreach ($values as $value) { - if (empty($value)) { - continue; - } - $party = $this->partyRepository->find($value); if (false === in_array($this->center, $party->getCenters()->toArray(), true)) { diff --git a/src/Bundle/ChillThirdPartyBundle/Form/ThirdPartyType.php b/src/Bundle/ChillThirdPartyBundle/Form/ThirdPartyType.php index 79f107575..b1446a543 100644 --- a/src/Bundle/ChillThirdPartyBundle/Form/ThirdPartyType.php +++ b/src/Bundle/ChillThirdPartyBundle/Form/ThirdPartyType.php @@ -20,14 +20,10 @@ use Chill\MainBundle\Form\Type\PickCivilityType; use Chill\MainBundle\Security\Authorization\AuthorizationHelper; use Chill\MainBundle\Templating\TranslatableStringHelper; use Chill\ThirdPartyBundle\Entity\ThirdParty; -use Chill\ThirdPartyBundle\Entity\ThirdPartyProfession; use Chill\ThirdPartyBundle\Form\Type\PickThirdPartyTypeCategoryType; use Chill\ThirdPartyBundle\Security\Voter\ThirdPartyVoter; use Chill\ThirdPartyBundle\ThirdPartyType\ThirdPartyTypeManager; use Doctrine\ORM\EntityManagerInterface; -use Doctrine\ORM\EntityRepository; -use Doctrine\ORM\QueryBuilder; -use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\CheckboxType; @@ -111,18 +107,10 @@ class ThirdPartyType extends AbstractType 'placeholder' => 'thirdparty.choose civility', 'required' => false, ]) - ->add('profession', EntityType::class, [ + ->add('profession', TextType::class, [ 'label' => 'thirdparty.Profession', - 'class' => ThirdPartyProfession::class, - 'choice_label' => function (ThirdPartyProfession $profession): string { - return $this->translatableStringHelper->localize($profession->getName()); - }, - 'query_builder' => static function (EntityRepository $er): QueryBuilder { - return $er->createQueryBuilder('p') - ->where('p.active = true'); - }, - 'placeholder' => 'thirdparty.choose profession', 'required' => false, + 'empty_data' => '', ]) ->add('contactDataAnonymous', CheckboxType::class, [ 'required' => false, diff --git a/src/Bundle/ChillThirdPartyBundle/Form/Type/PickThirdPartyType.php b/src/Bundle/ChillThirdPartyBundle/Form/Type/PickThirdPartyType.php index 259fb63f4..ed4b3c1e7 100644 --- a/src/Bundle/ChillThirdPartyBundle/Form/Type/PickThirdPartyType.php +++ b/src/Bundle/ChillThirdPartyBundle/Form/Type/PickThirdPartyType.php @@ -29,6 +29,10 @@ use function array_merge; use function count; use function is_array; +/** + * @deprecated use the @link{PickThirdPartyDynamicType::class} + * @note do remove ThirdPartyChoiceLoader if this class is removed + */ class PickThirdPartyType extends AbstractType { /** diff --git a/src/Bundle/ChillThirdPartyBundle/Form/Type/PickThirdPartyTypeCategoryType.php b/src/Bundle/ChillThirdPartyBundle/Form/Type/PickThirdPartyTypeCategoryType.php index b8b19d1d6..eb7966084 100644 --- a/src/Bundle/ChillThirdPartyBundle/Form/Type/PickThirdPartyTypeCategoryType.php +++ b/src/Bundle/ChillThirdPartyBundle/Form/Type/PickThirdPartyTypeCategoryType.php @@ -88,22 +88,12 @@ class PickThirdPartyTypeCategoryType extends \Symfony\Component\Form\AbstractTyp return ChoiceType::class; } - public function reverseTransform($value) + private function reverseTransform($value) { if (null === $value) { return null; } - if (is_array($value)) { - $r = []; - - foreach ($value as $v) { - $r[] = $this->transform($v); - } - - return $r; - } - if ($value instanceof ThirdPartyCategory) { return 'category:' . $value->getId(); } diff --git a/src/Bundle/ChillThirdPartyBundle/Form/Type/PickThirdpartyDynamicType.php b/src/Bundle/ChillThirdPartyBundle/Form/Type/PickThirdpartyDynamicType.php index ada4064eb..eb9e7e5ea 100644 --- a/src/Bundle/ChillThirdPartyBundle/Form/Type/PickThirdpartyDynamicType.php +++ b/src/Bundle/ChillThirdPartyBundle/Form/Type/PickThirdpartyDynamicType.php @@ -18,6 +18,7 @@ use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormView; use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Serializer\Normalizer\DenormalizerInterface; +use Symfony\Component\Serializer\Normalizer\NormalizerInterface; use Symfony\Component\Serializer\SerializerInterface; /** @@ -27,12 +28,15 @@ class PickThirdpartyDynamicType extends AbstractType { private DenormalizerInterface $denormalizer; + private NormalizerInterface $normalizer; + private SerializerInterface $serializer; - public function __construct(DenormalizerInterface $denormalizer, SerializerInterface $serializer) + public function __construct(DenormalizerInterface $denormalizer, SerializerInterface $serializer, NormalizerInterface $normalizer) { $this->denormalizer = $denormalizer; $this->serializer = $serializer; + $this->normalizer = $normalizer; } public function buildForm(FormBuilderInterface $builder, array $options) @@ -45,6 +49,11 @@ class PickThirdpartyDynamicType extends AbstractType $view->vars['multiple'] = $options['multiple']; $view->vars['types'] = ['thirdparty']; $view->vars['uniqid'] = uniqid('pick_user_dyn'); + $view->vars['suggested'] = []; + + foreach ($options['suggested'] as $tp) { + $view->vars['suggested'][] = $this->normalizer->normalize($tp, 'json', ['groups' => 'read']); + } } public function configureOptions(OptionsResolver $resolver) @@ -52,7 +61,8 @@ class PickThirdpartyDynamicType extends AbstractType $resolver ->setDefault('multiple', false) ->setAllowedTypes('multiple', ['bool']) - ->setDefault('compound', false); + ->setDefault('compound', false) + ->setDefault('suggested', []); } public function getBlockPrefix() diff --git a/src/Bundle/ChillThirdPartyBundle/Repository/ThirdPartyRepository.php b/src/Bundle/ChillThirdPartyBundle/Repository/ThirdPartyRepository.php index 6739621ed..76e15ef17 100644 --- a/src/Bundle/ChillThirdPartyBundle/Repository/ThirdPartyRepository.php +++ b/src/Bundle/ChillThirdPartyBundle/Repository/ThirdPartyRepository.php @@ -33,9 +33,8 @@ final class ThirdPartyRepository implements ObjectRepository /** * count amongst parties associated to $centers, with $terms parameters. * - * @param type $terms */ - public function countByMemberOfCenters(array $centers, $terms = []): int + public function countByMemberOfCenters(array $centers, array $terms = []): int { $qb = $this->buildQuery($centers, $terms); $qb->select('COUNT(tp)'); @@ -181,7 +180,7 @@ final class ThirdPartyRepository implements ObjectRepository if (array_key_exists('name', $terms) || array_key_exists('_default', $terms)) { $term = $terms['name'] ?? $terms['_default']; - if (empty($term)) { + if (null === $term || '' === $term) { return; } $qb->andWhere($qb->expr()->like('UNACCENT(LOWER(tp.name))', 'UNACCENT(LOWER(:name))')); diff --git a/src/Bundle/ChillThirdPartyBundle/Resources/public/vuejs/_components/Entity/ThirdPartyRenderBox.vue b/src/Bundle/ChillThirdPartyBundle/Resources/public/vuejs/_components/Entity/ThirdPartyRenderBox.vue index 662911714..0a3831df7 100644 --- a/src/Bundle/ChillThirdPartyBundle/Resources/public/vuejs/_components/Entity/ThirdPartyRenderBox.vue +++ b/src/Bundle/ChillThirdPartyBundle/Resources/public/vuejs/_components/Entity/ThirdPartyRenderBox.vue @@ -1,100 +1,100 @@ @@ -104,74 +104,78 @@ import Confidential from 'ChillMainAssets/vuejs/_components/Confidential.vue'; import BadgeEntity from 'ChillMainAssets/vuejs/_components/BadgeEntity.vue'; export default { - name: "ThirdPartyRenderBox", - components: { - AddressRenderBox, - Confidential, - BadgeEntity, - }, - // To avoid components recursively invoking eachother resolve OnTheFly component here - beforeCreate() { - this.$options.components.OnTheFly = require('ChillMainAssets/vuejs/OnTheFly/components/OnTheFly').default; - }, - i18n: { - messages: { - fr: { - children: "Personnes de contact: ", - child_of: "Contact de: ", - }} - }, - props: ['thirdparty', 'options'], - computed: { - isMultiline: function() { - if (this.options.isMultiline){ - return this.options.isMultiline - } else { - return false - } - }, - hasParent() { - return !(this.thirdparty.parent === null || this.thirdparty.parent === undefined); - }, - getProfession() { - let profession = [] - if (this.hasParent && this.thirdparty.profession) { - profession.push(this.thirdparty.profession.name.fr) - return profession; - } - - if (!this.hasParent && this.thirdparty.category) { - profession = this.thirdparty.category.map((category) => category.text); - } - return profession; - } - /* TODO need backend normalizer to serve children without circular reference - hasChildren() { - //console.log(this.thirdparty.activeChildren.length > 0) - return false - } */ + name: "ThirdPartyRenderBox", + components: { + AddressRenderBox, + Confidential, + BadgeEntity, + }, + // To avoid components recursively invoking eachother resolve OnTheFly component here + beforeCreate() { + this.$options.components.OnTheFly = require('ChillMainAssets/vuejs/OnTheFly/components/OnTheFly').default; + }, + i18n: { + messages: { + fr: { + children: "Personnes de contact: ", + child_of: "Contact de: ", + } } + }, + props: ['thirdparty', 'options'], + computed: { + isMultiline: function () { + if (this.options.isMultiline) { + return this.options.isMultiline + } else { + return false + } + }, + hasParent() { + return !(this.thirdparty.parent === null || this.thirdparty.parent === undefined); + }, + getProfession() { + let profession = [] + if (this.hasParent && this.thirdparty.profession) { + profession.push(this.thirdparty.profession) + return profession; + } + + if (!this.hasParent && this.thirdparty.category) { + profession = this.thirdparty.category.map((category) => category.text); + } + + return profession; + } + /* TODO need backend normalizer to serve children without circular reference + hasChildren() { + //console.log(this.thirdparty.activeChildren.length > 0) + return false + } */ + } } diff --git a/src/Bundle/ChillThirdPartyBundle/Resources/public/vuejs/_components/OnTheFly/ThirdParty.vue b/src/Bundle/ChillThirdPartyBundle/Resources/public/vuejs/_components/OnTheFly/ThirdParty.vue index 765d67fe8..0c830d673 100644 --- a/src/Bundle/ChillThirdPartyBundle/Resources/public/vuejs/_components/OnTheFly/ThirdParty.vue +++ b/src/Bundle/ChillThirdPartyBundle/Resources/public/vuejs/_components/OnTheFly/ThirdParty.vue @@ -73,13 +73,13 @@ -
      - -
      +
      + +
      @@ -192,9 +192,8 @@ export default { name: '', telephone: '', civility: null, - profession: null, + profession: '', }, - professions: [], civilities: [], addAddress: { options: { @@ -274,18 +273,6 @@ export default { this.$toast.open({message: error.body}) }) }, - loadProfessions() { - const url = `/api/1.0/thirdparty/professions.json`; - return makeFetch('GET', url) - .then(response => { - this.$data.professions = response.results; - return Promise.resolve(); - }) - .catch((error) => { - console.log(error) - this.$toast.open({message: error.body}) - }) - }, submitAddress(payload) { console.log('submitAddress', payload); if (typeof payload.addressId !== 'undefined') { // <-- @@ -311,7 +298,6 @@ export default { }, mounted() { let dependencies = []; - dependencies.push(this.loadProfessions()); dependencies.push(this.loadCivilities()); if (this.action !== 'create') { if (this.id) { diff --git a/src/Bundle/ChillThirdPartyBundle/Search/ThirdPartySearch.php b/src/Bundle/ChillThirdPartyBundle/Search/ThirdPartySearch.php index 22ae23014..2c7948a2d 100644 --- a/src/Bundle/ChillThirdPartyBundle/Search/ThirdPartySearch.php +++ b/src/Bundle/ChillThirdPartyBundle/Search/ThirdPartySearch.php @@ -15,6 +15,7 @@ use Chill\MainBundle\Pagination\PaginatorFactory; use Chill\MainBundle\Search\SearchInterface; use Chill\MainBundle\Security\Authorization\AuthorizationHelper; use Chill\ThirdPartyBundle\Entity\ThirdParty; +use Chill\ThirdPartyBundle\Repository\ThirdPartyRepository; use Chill\ThirdPartyBundle\Security\Voter\ThirdPartyVoter; use Doctrine\ORM\EntityManagerInterface; use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; @@ -47,16 +48,20 @@ class ThirdPartySearch implements SearchInterface */ protected $tokenStorage; + private ThirdPartyRepository $thirdPartyRepository; + public function __construct( EntityManagerInterface $em, TokenStorageInterface $tokenStorage, AuthorizationHelper $authorizationHelper, - PaginatorFactory $paginatorFactory + PaginatorFactory $paginatorFactory, + ThirdPartyRepository $thirdPartyRepository ) { $this->em = $em; $this->tokenStorage = $tokenStorage; $this->authorizationHelper = $authorizationHelper; $this->paginatorFactory = $paginatorFactory; + $this->thirdPartyRepository = $thirdPartyRepository; } public function getOrder(): int @@ -74,7 +79,7 @@ class ThirdPartySearch implements SearchInterface $centers = $this->authorizationHelper ->getReachableCenters( $this->tokenStorage->getToken()->getUser(), - new Role(ThirdPartyVoter::SHOW) + ThirdPartyVoter::SHOW ); $total = $this->count($centers, $terms); $paginator = $this->paginatorFactory->create($total); @@ -84,7 +89,7 @@ class ThirdPartySearch implements SearchInterface if ('json' === $format) { return [ - 'results' => $this->em->getRepository(ThirdParty::class) + 'results' => $this->thirdPartyRepository ->findByMemberOfCenters( $centers, $start, @@ -95,6 +100,8 @@ class ThirdPartySearch implements SearchInterface 'more' => $paginator->hasNextPage(), ]; } + // format "html" + throw new \UnexpectedValueException("format html not supported"); } public function supports($domain, $format): bool @@ -104,7 +111,7 @@ class ThirdPartySearch implements SearchInterface protected function count($centers, $terms): int { - return $this->em->getRepository(ThirdParty::class) + return $this->thirdPartyRepository ->countByMemberOfCenters($centers, $terms); } } diff --git a/src/Bundle/ChillThirdPartyBundle/Serializer/Normalizer/ThirdPartyNormalizer.php b/src/Bundle/ChillThirdPartyBundle/Serializer/Normalizer/ThirdPartyNormalizer.php index 5f4cd1a9a..7b2721511 100644 --- a/src/Bundle/ChillThirdPartyBundle/Serializer/Normalizer/ThirdPartyNormalizer.php +++ b/src/Bundle/ChillThirdPartyBundle/Serializer/Normalizer/ThirdPartyNormalizer.php @@ -15,6 +15,7 @@ use Chill\MainBundle\Templating\TranslatableStringHelperInterface; use Chill\ThirdPartyBundle\Entity\ThirdParty; use Chill\ThirdPartyBundle\Entity\ThirdPartyCategory; use Chill\ThirdPartyBundle\Templating\Entity\ThirdPartyRender; +use Symfony\Component\Serializer\Exception\UnexpectedValueException; use Symfony\Component\Serializer\Normalizer\NormalizerAwareInterface; use Symfony\Component\Serializer\Normalizer\NormalizerAwareTrait; use Symfony\Component\Serializer\Normalizer\NormalizerInterface; @@ -35,12 +36,12 @@ class ThirdPartyNormalizer implements NormalizerAwareInterface, NormalizerInterf $this->translatableStringHelper = $translatableStringHelper; } - /** - * @param ThirdParty $thirdParty - * @param string|null $format - */ public function normalize($thirdParty, $format = null, array $context = []) { + if (!$thirdParty instanceof ThirdParty) { + throw new UnexpectedValueException(); + } + return [ 'type' => 'thirdparty', 'firstname' => $thirdParty->getFirstname(), diff --git a/src/Bundle/ChillThirdPartyBundle/Templating/Entity/ThirdPartyRender.php b/src/Bundle/ChillThirdPartyBundle/Templating/Entity/ThirdPartyRender.php index 7e708f757..ece12f5c9 100644 --- a/src/Bundle/ChillThirdPartyBundle/Templating/Entity/ThirdPartyRender.php +++ b/src/Bundle/ChillThirdPartyBundle/Templating/Entity/ThirdPartyRender.php @@ -12,12 +12,18 @@ declare(strict_types=1); namespace Chill\ThirdPartyBundle\Templating\Entity; use Chill\MainBundle\Templating\Entity\AbstractChillEntityRender; +use Chill\MainBundle\Templating\Entity\BoxUtilsChillEntityRenderTrait; +use Chill\MainBundle\Templating\Entity\ChillEntityRenderInterface; use Chill\MainBundle\Templating\TranslatableStringHelper; use Chill\ThirdPartyBundle\Entity\ThirdParty; use Symfony\Component\Templating\EngineInterface; -class ThirdPartyRender extends AbstractChillEntityRender +/** + * @implements ChillEntityRenderInterface + */ +class ThirdPartyRender implements ChillEntityRenderInterface { + use BoxUtilsChillEntityRenderTrait; protected EngineInterface $engine; protected TranslatableStringHelper $translatableStringHelper; @@ -30,9 +36,6 @@ class ThirdPartyRender extends AbstractChillEntityRender $this->translatableStringHelper = $translatableStringHelper; } - /** - * @param ThirdParty $entity - */ public function renderBox($entity, array $options): string { $params = [ @@ -59,9 +62,6 @@ class ThirdPartyRender extends AbstractChillEntityRender $this->getDefaultClosingBox(); } - /** - * @param ThirdParty $entity - */ public function renderString($entity, array $options): string { if ($entity->getCivility() !== null) { diff --git a/src/Bundle/ChillThirdPartyBundle/chill.api.specs.yaml b/src/Bundle/ChillThirdPartyBundle/chill.api.specs.yaml index 035185181..5477075e0 100644 --- a/src/Bundle/ChillThirdPartyBundle/chill.api.specs.yaml +++ b/src/Bundle/ChillThirdPartyBundle/chill.api.specs.yaml @@ -112,14 +112,3 @@ paths: description: "OK" 422: description: "Object with validation errors" - - /1.0/thirdparty/professions.json: - get: - tags: - - thirdparty - summary: Return all thirdparty professions - responses: - 200: - description: "ok" - 401: - description: "Unauthorized" diff --git a/src/Bundle/ChillThirdPartyBundle/config/services/fixtures.yaml b/src/Bundle/ChillThirdPartyBundle/config/services/fixtures.yaml index 40f663e6d..063188be9 100644 --- a/src/Bundle/ChillThirdPartyBundle/config/services/fixtures.yaml +++ b/src/Bundle/ChillThirdPartyBundle/config/services/fixtures.yaml @@ -7,7 +7,3 @@ services: Chill\ThirdPartyBundle\DataFixtures\ORM\LoadThirdPartyCategory: tags: - { 'name': doctrine.fixture.orm } - - Chill\ThirdPartyBundle\DataFixtures\ORM\LoadThirdPartyProfession: - tags: - - { 'name': doctrine.fixture.orm } diff --git a/src/Bundle/ChillThirdPartyBundle/config/services/search.yaml b/src/Bundle/ChillThirdPartyBundle/config/services/search.yaml index 62b5dd205..08f8f5ad8 100644 --- a/src/Bundle/ChillThirdPartyBundle/config/services/search.yaml +++ b/src/Bundle/ChillThirdPartyBundle/config/services/search.yaml @@ -1,10 +1,7 @@ services: Chill\ThirdPartyBundle\Search\ThirdPartySearch: - arguments: - $em: '@Doctrine\ORM\EntityManagerInterface' - $tokenStorage: '@Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface' - $authorizationHelper: '@Chill\MainBundle\Security\Authorization\AuthorizationHelper' - $paginatorFactory: '@Chill\MainBundle\Pagination\PaginatorFactory' + autowire: true + autoconfigure: true tags: - { name: 'chill.search', alias: '3party' } diff --git a/src/Bundle/ChillThirdPartyBundle/migrations/Version20230215175150.php b/src/Bundle/ChillThirdPartyBundle/migrations/Version20230215175150.php new file mode 100644 index 000000000..fefe1c339 --- /dev/null +++ b/src/Bundle/ChillThirdPartyBundle/migrations/Version20230215175150.php @@ -0,0 +1,63 @@ +addSql('ALTER TABLE chill_3party.third_party DROP profession'); + // $this->addSql('ALTER TABLE chill_3party.third_party ADD profession_id INT DEFAULT NULL'); + } + + public function getDescription(): string + { + return 'Change profession to a string field and transfer values'; + } + + /** + * @return mixed + */ + public function setContainer(?ContainerInterface $container = null) + { + $this->container = $container; + } + + public function up(Schema $schema): void + { + $this->addSql('ALTER TABLE chill_3party.third_party ADD profession TEXT DEFAULT \'\' NOT NULL'); + + $em = $this->container->get('doctrine.orm.entity_manager'); + $professions = $em->getRepository(ThirdPartyProfession::class)->findAll(); + + foreach ($professions as $p) { + $id = $p->getId(); + $name = $p->getName()['fr']; + + $this->addSql( + 'UPDATE chill_3party.third_party SET profession = :profession + WHERE chill_3party.third_party.profession_id = :id;', + ['profession' => $name, 'id' => $id], + ['profession' => Types::STRING, 'id' => Types::INTEGER] + ); + } + } +} diff --git a/src/Bundle/ChillWopiBundle/src/Controller/Convert.php b/src/Bundle/ChillWopiBundle/src/Controller/Convert.php index 0a4dc8762..b3697aafd 100644 --- a/src/Bundle/ChillWopiBundle/src/Controller/Convert.php +++ b/src/Bundle/ChillWopiBundle/src/Controller/Convert.php @@ -18,6 +18,7 @@ use Chill\MainBundle\Entity\User; use Psr\Log\LoggerInterface; use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Component\HttpFoundation\JsonResponse; +use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException; use Symfony\Component\Mime\Part\DataPart; @@ -40,6 +41,8 @@ class Convert private LoggerInterface $logger; + private RequestStack $requestStack; + private Security $security; private StoredObjectManagerInterface $storedObjectManager; @@ -49,12 +52,14 @@ class Convert */ public function __construct( HttpClientInterface $httpClient, + RequestStack $requestStack, Security $security, StoredObjectManagerInterface $storedObjectManager, LoggerInterface $logger, ParameterBagInterface $parameters ) { $this->httpClient = $httpClient; + $this->requestStack = $requestStack; $this->security = $security; $this->storedObjectManager = $storedObjectManager; $this->logger = $logger; @@ -68,6 +73,10 @@ class Convert } $content = $this->storedObjectManager->read($storedObject); + $query = []; + if (null !== $request = $this->requestStack->getCurrentRequest()) { + $query['lang'] = $request->getLocale(); + } try { $url = sprintf('%s/cool/convert-to/pdf', $this->collaboraDomain); @@ -76,6 +85,7 @@ class Convert ]); $response = $this->httpClient->request('POST', $url, [ 'headers' => $form->getPreparedHeaders()->toArray(), + 'query' => $query, 'body' => $form->bodyToString(), 'timeout' => 10, ]); @@ -83,14 +93,8 @@ class Convert return new Response($response->getContent(), Response::HTTP_OK, [ 'Content-Type' => 'application/pdf', ]); - } catch (ClientExceptionInterface $exception) { - return $this->onConversionFailed($url, $response); - } catch (RedirectionExceptionInterface $e) { - return $this->onConversionFailed($url, $response); - } catch (ServerExceptionInterface $e) { - return $this->onConversionFailed($url, $response); - } catch (TransportExceptionInterface $e) { - return $this->onConversionFailed($url, $response); + } catch (ClientExceptionInterface|TransportExceptionInterface|RedirectionExceptionInterface|ServerExceptionInterface $exception) { + return $this->onConversionFailed($url, $exception->getResponse()); } } diff --git a/src/Bundle/ChillWopiBundle/src/Controller/Editor.php b/src/Bundle/ChillWopiBundle/src/Controller/Editor.php index d19a98052..ab4276ec4 100644 --- a/src/Bundle/ChillWopiBundle/src/Controller/Editor.php +++ b/src/Bundle/ChillWopiBundle/src/Controller/Editor.php @@ -20,6 +20,7 @@ use Chill\WopiBundle\Service\Controller\ResponderInterface; use Exception; use Lexik\Bundle\JWTAuthenticationBundle\Services\JWTTokenManagerInterface; use loophp\psr17\Psr17Interface; +use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; @@ -81,7 +82,7 @@ final class Editor $this->router = $router; } - public function __invoke(string $fileId): Response + public function __invoke(string $fileId, Request $request): Response { if (null === $user = $this->security->getUser()) { throw new AccessDeniedHttpException('Please authenticate to access this feature'); @@ -104,7 +105,8 @@ final class Editor $this->engine ->render('@ChillWopi/Editor/stored_object_failure.html.twig') ); - } elseif (StoredObject::STATUS_PENDING === $storedObject->getStatus()) { + } + if (StoredObject::STATUS_PENDING === $storedObject->getStatus()) { return new Response( $this->engine ->render('@ChillWopi/Editor/stored_object_pending.html.twig', [ @@ -150,6 +152,7 @@ final class Editor UrlGeneratorInterface::ABSOLUTE_URL ), 'closebutton' => 1, + 'lang' => $request->getLocale(), ] ) ); diff --git a/src/Bundle/ChillWopiBundle/src/Resources/views/Editor/page.html.twig b/src/Bundle/ChillWopiBundle/src/Resources/views/Editor/page.html.twig index 6534dfd30..c96833aa1 100644 --- a/src/Bundle/ChillWopiBundle/src/Resources/views/Editor/page.html.twig +++ b/src/Bundle/ChillWopiBundle/src/Resources/views/Editor/page.html.twig @@ -25,6 +25,7 @@
      +
      diff --git a/src/Bundle/ChillWopiBundle/src/Service/Wopi/ChillDocumentManager.php b/src/Bundle/ChillWopiBundle/src/Service/Wopi/ChillDocumentManager.php index 19b4dc9b4..ce75cafa8 100644 --- a/src/Bundle/ChillWopiBundle/src/Service/Wopi/ChillDocumentManager.php +++ b/src/Bundle/ChillWopiBundle/src/Service/Wopi/ChillDocumentManager.php @@ -76,7 +76,7 @@ final class ChillDocumentManager implements DocumentManagerInterface $document->setFilename($data['name']); $this->entityManager->persist($document); - $this->entityManager->flush($document); + $this->entityManager->flush(); // TODO : Ask proper mapping. // Available: basename, name, extension, content, size @@ -134,7 +134,7 @@ final class ChillDocumentManager implements DocumentManagerInterface */ public function getCreationDate(Document $document): DateTimeInterface { - return $document->getCreationDate(); + return $document->getCreatedAt() ?? new \DateTimeImmutable('now'); } /** diff --git a/src/Bundle/ChillWopiBundle/src/Service/Wopi/UserManager.php b/src/Bundle/ChillWopiBundle/src/Service/Wopi/UserManager.php index dc030192b..3fb3b544e 100644 --- a/src/Bundle/ChillWopiBundle/src/Service/Wopi/UserManager.php +++ b/src/Bundle/ChillWopiBundle/src/Service/Wopi/UserManager.php @@ -32,7 +32,7 @@ class UserManager implements \ChampsLibres\WopiBundle\Contracts\UserManagerInter return null; } - return (string) $user->getLabel(); + return $user->getLabel(); } public function getUserId(string $accessToken, string $fileId, RequestInterface $request): ?string diff --git a/src/Bundle/import-png.d.ts b/src/Bundle/import-png.d.ts new file mode 100644 index 000000000..6a81ab5d7 --- /dev/null +++ b/src/Bundle/import-png.d.ts @@ -0,0 +1,4 @@ +declare module "*.png" { + const value: any; + export default value; +}