diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index d691ad0..d7c9b25 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -14,7 +14,7 @@ jobs: strategy: matrix: php: - - '8.0' + - '8.1' steps: - uses: actions/checkout@v2 @@ -33,6 +33,32 @@ jobs: - name: Run code style check run: composer run-script check-cs -- --format=checkstyle | cs2pr + phpstan: + name: Run PHPStan analysis + runs-on: "ubuntu-24.04" + strategy: + matrix: + php: + - '7.4' + - '8.3' + steps: + - uses: actions/checkout@v4 + + - name: Setup PHP Action + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + coverage: none + extensions: 'pdo_sqlite, gd' + tools: cs2pr + + - uses: "ramsey/composer-install@v3" + with: + dependency-versions: "highest" + + - name: Run PHPStan analysis + run: composer run-script phpstan + tests: name: Tests runs-on: "ubuntu-24.04" @@ -43,7 +69,7 @@ jobs: matrix: php: - '7.4' - - '8.0' + - '8.3' composer_options: [ "" ] include: - php: '8.1' diff --git a/composer.json b/composer.json index 6af2b35..1296d61 100644 --- a/composer.json +++ b/composer.json @@ -35,6 +35,9 @@ "phpunit/phpunit": "^8.5", "matthiasnoback/symfony-dependency-injection-test": "^4.3", "phpspec/phpspec": "^7.1", + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpstan/phpstan-symfony": "^2.0", "ibexa/code-style": "^1.0", "friendsofphp/php-cs-fixer": "^3.0", "symfony/phpunit-bridge": "^5.1" @@ -59,6 +62,7 @@ "unit": "phpunit -c phpunit.xml", "spec": "phpspec run --format=pretty", "check-cs": "@fix-cs --dry-run", + "phpstan": "phpstan analyse", "test": [ "@unit", "@spec" diff --git a/ignore-by-php-version.neon.php b/ignore-by-php-version.neon.php new file mode 100644 index 0000000..9ccac08 --- /dev/null +++ b/ignore-by-php-version.neon.php @@ -0,0 +1,19 @@ += 80000) { + $includes[] = __DIR__ . '/ignore-gte-php8.0-errors.neon'; +} else { + $includes[] = __DIR__ . '/ignore-php7.4-errors.neon'; +} + +$config = []; +$config['includes'] = $includes; + +return $config; diff --git a/ignore-gte-php8.0-errors.neon b/ignore-gte-php8.0-errors.neon new file mode 100644 index 0000000..522f3d4 --- /dev/null +++ b/ignore-gte-php8.0-errors.neon @@ -0,0 +1,23 @@ +parameters: + ignoreErrors: + - + message: '#^Parameter \#2 \$string of function explode expects string, string\|null given\.$#' + identifier: argument.type + count: 1 + path: src/lib/EventSubscriber/XLocationIdResponseSubscriber.php + - + message: '#^Parameter \#1 \.\.\.\$arrays of function array_merge expects array, list\\|false given\.$#' + identifier: argument.type + count: 1 + path: src/lib/Handler/TagHandler.php + - + message: '#^Parameter \#2 \.\.\.\$arrays of function array_merge expects array, list\\|false given\.$#' + identifier: argument.type + count: 1 + path: src/lib/Handler/TagHandler.php + + - + message: '#^Parameter \#3 \$length of function substr expects int\|null, int\|false given\.$#' + identifier: argument.type + count: 1 + path: src/lib/Handler/TagHandler.php diff --git a/ignore-php7.4-errors.neon b/ignore-php7.4-errors.neon new file mode 100644 index 0000000..ce20996 --- /dev/null +++ b/ignore-php7.4-errors.neon @@ -0,0 +1,23 @@ +parameters: + ignoreErrors: + - + message: '#^Parameter \#2 \$str of function explode expects string, string\|null given\.$#' + identifier: argument.type + count: 1 + path: src/lib/EventSubscriber/XLocationIdResponseSubscriber.php + - + message: '#^Parameter \#1 \$arr1 of function array_merge expects array, list\\|false given\.$#' + identifier: argument.type + count: 1 + path: src/lib/Handler/TagHandler.php + - + message: '#^Parameter \#2 \.\.\.\$args of function array_merge expects array, list\\|false given\.$#' + identifier: argument.type + count: 1 + path: src/lib/Handler/TagHandler.php + + - + message: '#^Parameter \#3 \$length of function substr expects int, int\<0, max\>\|false given\.$#' + identifier: argument.type + count: 1 + path: src/lib/Handler/TagHandler.php diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon new file mode 100644 index 0000000..1594049 --- /dev/null +++ b/phpstan-baseline.neon @@ -0,0 +1,1861 @@ +parameters: + ignoreErrors: + - + message: '#^Class spec\\Ibexa\\HttpCache\\DependencyInjection\\Compiler\\KernelPassSpec extends generic class PhpSpec\\ObjectBehavior but does not specify its types\: TKey, TValue$#' + identifier: missingType.generics + count: 1 + path: spec/DependencyInjection/Compiler/KernelPassSpec.php + + - + message: '#^Call to an undefined method Exception\:\:getWrappedObject\(\)\.$#' + identifier: method.notFound + count: 1 + path: spec/EventSubscriber/HiddenLocationExceptionSubscriberSpec.php + + - + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo\:\:willReturn\(\)\.$#' + identifier: method.notFound + count: 1 + path: spec/EventSubscriber/HiddenLocationExceptionSubscriberSpec.php + + - + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\:\:shouldHaveBeenCalled\(\)\.$#' + identifier: method.notFound + count: 1 + path: spec/EventSubscriber/HiddenLocationExceptionSubscriberSpec.php + + - + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\:\:willReturn\(\)\.$#' + identifier: method.notFound + count: 1 + path: spec/EventSubscriber/HiddenLocationExceptionSubscriberSpec.php + + - + message: '#^Call to an undefined method Ibexa\\Core\\MVC\\Exception\\HiddenLocationException\:\:getWrappedObject\(\)\.$#' + identifier: method.notFound + count: 1 + path: spec/EventSubscriber/HiddenLocationExceptionSubscriberSpec.php + + - + message: '#^Call to an undefined method Symfony\\Component\\HttpFoundation\\Request\:\:getWrappedObject\(\)\.$#' + identifier: method.notFound + count: 2 + path: spec/EventSubscriber/HiddenLocationExceptionSubscriberSpec.php + + - + message: '#^Call to an undefined method Symfony\\Component\\HttpKernel\\HttpKernelInterface\:\:getWrappedObject\(\)\.$#' + identifier: method.notFound + count: 2 + path: spec/EventSubscriber/HiddenLocationExceptionSubscriberSpec.php + + - + message: '#^Call to an undefined method spec\\Ibexa\\HttpCache\\EventSubscriber\\HiddenLocationExceptionSubscriberSpec\:\:tagHiddenLocationExceptionResponse\(\)\.$#' + identifier: method.notFound + count: 2 + path: spec/EventSubscriber/HiddenLocationExceptionSubscriberSpec.php + + - + message: '#^Class spec\\Ibexa\\HttpCache\\EventSubscriber\\HiddenLocationExceptionSubscriberSpec extends generic class PhpSpec\\ObjectBehavior but does not specify its types\: TKey, TValue$#' + identifier: missingType.generics + count: 1 + path: spec/EventSubscriber/HiddenLocationExceptionSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\HiddenLocationExceptionSubscriberSpec\:\:it_does_not_tag_on_other_exceptions\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/HiddenLocationExceptionSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\HiddenLocationExceptionSubscriberSpec\:\:it_tags_on_hidden_location_exception\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/HiddenLocationExceptionSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\HiddenLocationExceptionSubscriberSpec\:\:let\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/HiddenLocationExceptionSubscriberSpec.php + + - + message: '#^Call to an undefined method Ibexa\\HttpCache\\ResponseConfigurator\\ResponseCacheConfigurator\:\:shouldHaveBeenCalled\(\)\.$#' + identifier: method.notFound + count: 2 + path: spec/EventSubscriber/HttpCacheResponseSubscriberSpec.php + + - + message: '#^Call to an undefined method Ibexa\\HttpCache\\ResponseConfigurator\\ResponseCacheConfigurator\:\:shouldNotBecalled\(\)\.$#' + identifier: method.notFound + count: 2 + path: spec/EventSubscriber/HttpCacheResponseSubscriberSpec.php + + - + message: '#^Call to an undefined method Symfony\\Component\\HttpFoundation\\Request\:\:getWrappedObject\(\)\.$#' + identifier: method.notFound + count: 3 + path: spec/EventSubscriber/HttpCacheResponseSubscriberSpec.php + + - + message: '#^Call to an undefined method Symfony\\Component\\HttpFoundation\\Response\:\:getWrappedObject\(\)\.$#' + identifier: method.notFound + count: 3 + path: spec/EventSubscriber/HttpCacheResponseSubscriberSpec.php + + - + message: '#^Call to an undefined method Symfony\\Component\\HttpKernel\\HttpKernelInterface\:\:getWrappedObject\(\)\.$#' + identifier: method.notFound + count: 3 + path: spec/EventSubscriber/HttpCacheResponseSubscriberSpec.php + + - + message: '#^Call to an undefined method spec\\Ibexa\\HttpCache\\EventSubscriber\\HttpCacheResponseSubscriberSpec\:\:configureCache\(\)\.$#' + identifier: method.notFound + count: 3 + path: spec/EventSubscriber/HttpCacheResponseSubscriberSpec.php + + - + message: '#^Cannot call method willReturn\(\) on array\|bool\|float\|int\|string\|null\.$#' + identifier: method.nonObject + count: 3 + path: spec/EventSubscriber/HttpCacheResponseSubscriberSpec.php + + - + message: '#^Cannot call method willReturn\(\) on bool\.$#' + identifier: method.nonObject + count: 2 + path: spec/EventSubscriber/HttpCacheResponseSubscriberSpec.php + + - + message: '#^Class spec\\Ibexa\\HttpCache\\EventSubscriber\\HttpCacheResponseSubscriberSpec extends generic class PhpSpec\\ObjectBehavior but does not specify its types\: TKey, TValue$#' + identifier: missingType.generics + count: 1 + path: spec/EventSubscriber/HttpCacheResponseSubscriberSpec.php + + - + message: '#^Method Ibexa\\HttpCache\\ResponseConfigurator\\ResponseCacheConfigurator\:\:enableCache\(\) invoked with 0 parameters, 1 required\.$#' + identifier: arguments.count + count: 2 + path: spec/EventSubscriber/HttpCacheResponseSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\HttpCacheResponseSubscriberSpec\:\:it_does_not_enable_cache_if_it_is_disabled_in_the_view\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/HttpCacheResponseSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\HttpCacheResponseSubscriberSpec\:\:it_does_not_enable_cache_if_the_view_is_not_a_cachableview\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/HttpCacheResponseSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\HttpCacheResponseSubscriberSpec\:\:it_enables_cache\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/HttpCacheResponseSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\HttpCacheResponseSubscriberSpec\:\:let\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/HttpCacheResponseSubscriberSpec.php + + - + message: '#^Parameter \#1 \$response of method Ibexa\\HttpCache\\ResponseConfigurator\\ResponseCacheConfigurator\:\:enableCache\(\) expects Symfony\\Component\\HttpFoundation\\Response, Prophecy\\Argument\\Token\\TypeToken given\.$#' + identifier: argument.type + count: 1 + path: spec/EventSubscriber/HttpCacheResponseSubscriberSpec.php + + - + message: '#^Parameter \#1 \$response of method Ibexa\\HttpCache\\ResponseConfigurator\\ResponseCacheConfigurator\:\:setSharedMaxAge\(\) expects Symfony\\Component\\HttpFoundation\\Response, Prophecy\\Argument\\Token\\TypeToken given\.$#' + identifier: argument.type + count: 1 + path: spec/EventSubscriber/HttpCacheResponseSubscriberSpec.php + + - + message: '#^Property Symfony\\Component\\HttpFoundation\\Request\:\:\$attributes \(Symfony\\Component\\HttpFoundation\\ParameterBag\) does not accept Symfony\\Component\\DependencyInjection\\ParameterBag\\ParameterBag\.$#' + identifier: assign.propertyType + count: 1 + path: spec/EventSubscriber/HttpCacheResponseSubscriberSpec.php + + - + message: '#^Call to an undefined method FOS\\HttpCache\\ResponseTagger\:\:shouldBeCalled\(\)\.$#' + identifier: method.notFound + count: 6 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Call to an undefined method FOS\\HttpCache\\ResponseTagger\:\:shouldNotBeCalled\(\)\.$#' + identifier: method.notFound + count: 3 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\ContentType\:\:beConstructedWith\(\)\.$#' + identifier: method.notFound + count: 6 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\ContentType\:\:getWrappedObject\(\)\.$#' + identifier: method.notFound + count: 2 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Repository\\Values\\ContentType\\ContentTypeGroup\:\:beConstructedWith\(\)\.$#' + identifier: method.notFound + count: 2 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\ContentInfo\:\:beConstructedWith\(\)\.$#' + identifier: method.notFound + count: 1 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Section\:\:beConstructedWith\(\)\.$#' + identifier: method.notFound + count: 1 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Section\:\:getWrappedObject\(\)\.$#' + identifier: method.notFound + count: 1 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Call to an undefined method Ibexa\\Core\\Repository\\Values\\Content\\VersionInfo\:\:beConstructedWith\(\)\.$#' + identifier: method.notFound + count: 1 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Call to an undefined method Ibexa\\Rest\\Server\\Values\\ContentTypeGroupList\:\:getWrappedObject\(\)\.$#' + identifier: method.notFound + count: 1 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Call to an undefined method Ibexa\\Rest\\Server\\Values\\ContentTypeGroupRefList\:\:getWrappedObject\(\)\.$#' + identifier: method.notFound + count: 2 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Call to an undefined method Ibexa\\Rest\\Server\\Values\\RestContentType\:\:getWrappedObject\(\)\.$#' + identifier: method.notFound + count: 2 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Call to an undefined method Ibexa\\Rest\\Server\\Values\\VersionList\:\:getWrappedObject\(\)\.$#' + identifier: method.notFound + count: 1 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Call to an undefined method Symfony\\Component\\HttpFoundation\\Request\:\:getWrappedObject\(\)\.$#' + identifier: method.notFound + count: 11 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Call to an undefined method Symfony\\Component\\HttpFoundation\\Response\:\:getWrappedObject\(\)\.$#' + identifier: method.notFound + count: 2 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Call to an undefined method Symfony\\Component\\HttpKernel\\HttpKernelInterface\:\:getWrappedObject\(\)\.$#' + identifier: method.notFound + count: 11 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Call to an undefined method spec\\Ibexa\\HttpCache\\EventSubscriber\\RestKernelViewSubscriberSpec\:\:tagUIRestResult\(\)\.$#' + identifier: method.notFound + count: 11 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Cannot call method willReturn\(\) on bool\.$#' + identifier: method.nonObject + count: 11 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Class spec\\Ibexa\\HttpCache\\EventSubscriber\\RestKernelViewSubscriberSpec extends generic class PhpSpec\\ObjectBehavior but does not specify its types\: TKey, TValue$#' + identifier: missingType.generics + count: 1 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\RestKernelViewSubscriberSpec\:\:it_does_nothing_on_content_type_draft\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\RestKernelViewSubscriberSpec\:\:it_does_nothing_on_non_rest_requests\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\RestKernelViewSubscriberSpec\:\:it_does_nothing_on_rest_content_type_draft\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\RestKernelViewSubscriberSpec\:\:it_does_nothing_on_rest_content_type_group_ref_draft\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\RestKernelViewSubscriberSpec\:\:it_does_nothing_on_uncachable_methods\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\RestKernelViewSubscriberSpec\:\:it_writes_tags_on_content_type_defined\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\RestKernelViewSubscriberSpec\:\:it_writes_tags_on_rest_content_type_defined\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\RestKernelViewSubscriberSpec\:\:it_writes_tags_on_rest_content_type_group_list\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\RestKernelViewSubscriberSpec\:\:it_writes_tags_on_rest_content_type_group_ref_defined\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\RestKernelViewSubscriberSpec\:\:it_writes_tags_on_rest_version_list\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\RestKernelViewSubscriberSpec\:\:it_writes_tags_on_section\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\RestKernelViewSubscriberSpec\:\:let\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Parameter \#1 \$tags of method FOS\\HttpCache\\ResponseTagger\:\:addTags\(\) expects array\, Prophecy\\Argument\\Token\\AnyValueToken given\.$#' + identifier: argument.type + count: 3 + path: spec/EventSubscriber/RestKernelViewSubscriberSpec.php + + - + message: '#^Call to an undefined method Symfony\\Component\\HttpFoundation\\Request\:\:getWrappedObject\(\)\.$#' + identifier: method.notFound + count: 5 + path: spec/EventSubscriber/UserContextSubscriberSpec.php + + - + message: '#^Call to an undefined method Symfony\\Component\\HttpFoundation\\Response\:\:getWrappedObject\(\)\.$#' + identifier: method.notFound + count: 5 + path: spec/EventSubscriber/UserContextSubscriberSpec.php + + - + message: '#^Call to an undefined method Symfony\\Component\\HttpKernel\\HttpKernelInterface\:\:getWrappedObject\(\)\.$#' + identifier: method.notFound + count: 5 + path: spec/EventSubscriber/UserContextSubscriberSpec.php + + - + message: '#^Call to an undefined method spec\\Ibexa\\HttpCache\\EventSubscriber\\UserContextSubscriberSpec\:\:tagUserContext\(\)\.$#' + identifier: method.notFound + count: 5 + path: spec/EventSubscriber/UserContextSubscriberSpec.php + + - + message: '#^Cannot call method shouldNotBecalled\(\) on int\|null\.$#' + identifier: method.nonObject + count: 2 + path: spec/EventSubscriber/UserContextSubscriberSpec.php + + - + message: '#^Cannot call method shouldNotBecalled\(\) on string\|null\.$#' + identifier: method.nonObject + count: 1 + path: spec/EventSubscriber/UserContextSubscriberSpec.php + + - + message: '#^Cannot call method willReturn\(\) on bool\.$#' + identifier: method.nonObject + count: 5 + path: spec/EventSubscriber/UserContextSubscriberSpec.php + + - + message: '#^Cannot call method willReturn\(\) on int\|null\.$#' + identifier: method.nonObject + count: 3 + path: spec/EventSubscriber/UserContextSubscriberSpec.php + + - + message: '#^Cannot call method willReturn\(\) on string\.$#' + identifier: method.nonObject + count: 2 + path: spec/EventSubscriber/UserContextSubscriberSpec.php + + - + message: '#^Cannot call method willReturn\(\) on string\|null\.$#' + identifier: method.nonObject + count: 4 + path: spec/EventSubscriber/UserContextSubscriberSpec.php + + - + message: '#^Class spec\\Ibexa\\HttpCache\\EventSubscriber\\UserContextSubscriberSpec extends generic class PhpSpec\\ObjectBehavior but does not specify its types\: TKey, TValue$#' + identifier: missingType.generics + count: 1 + path: spec/EventSubscriber/UserContextSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\UserContextSubscriberSpec\:\:it_does_nothing_on_empty_ttl\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/UserContextSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\UserContextSubscriberSpec\:\:it_does_nothing_on_uncachable_methods\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/UserContextSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\UserContextSubscriberSpec\:\:it_does_nothing_on_wrong_content_type\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/UserContextSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\UserContextSubscriberSpec\:\:it_is_initializable\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/UserContextSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\UserContextSubscriberSpec\:\:it_tags_response_with_a_prefix\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/UserContextSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\UserContextSubscriberSpec\:\:it_tags_response_with_no_prefix\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/UserContextSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\UserContextSubscriberSpec\:\:let\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/UserContextSubscriberSpec.php + + - + message: '#^Call to an undefined method FOS\\HttpCache\\ResponseTagger\:\:shouldBeCalled\(\)\.$#' + identifier: method.notFound + count: 1 + path: spec/EventSubscriber/XLocationIdResponseSubscriberSpec.php + + - + message: '#^Call to an undefined method FOS\\HttpCache\\ResponseTagger\:\:shouldBecalled\(\)\.$#' + identifier: method.notFound + count: 2 + path: spec/EventSubscriber/XLocationIdResponseSubscriberSpec.php + + - + message: '#^Call to an undefined method PhpSpec\\Wrapper\\Subject\\Expectation\\DuringCall\:\:duringRewriteCacheHeader\(\)\.$#' + identifier: method.notFound + count: 3 + path: spec/EventSubscriber/XLocationIdResponseSubscriberSpec.php + + - + message: '#^Call to an undefined method Symfony\\Component\\HttpFoundation\\Request\:\:getWrappedObject\(\)\.$#' + identifier: method.notFound + count: 4 + path: spec/EventSubscriber/XLocationIdResponseSubscriberSpec.php + + - + message: '#^Call to an undefined method Symfony\\Component\\HttpFoundation\\Response\:\:getWrappedObject\(\)\.$#' + identifier: method.notFound + count: 4 + path: spec/EventSubscriber/XLocationIdResponseSubscriberSpec.php + + - + message: '#^Call to an undefined method Symfony\\Component\\HttpKernel\\HttpKernelInterface\:\:getWrappedObject\(\)\.$#' + identifier: method.notFound + count: 4 + path: spec/EventSubscriber/XLocationIdResponseSubscriberSpec.php + + - + message: '#^Call to an undefined method spec\\Ibexa\\HttpCache\\EventSubscriber\\XLocationIdResponseSubscriberSpec\:\:rewriteCacheHeader\(\)\.$#' + identifier: method.notFound + count: 1 + path: spec/EventSubscriber/XLocationIdResponseSubscriberSpec.php + + - + message: '#^Cannot call method willReturn\(\) on bool\.$#' + identifier: method.nonObject + count: 4 + path: spec/EventSubscriber/XLocationIdResponseSubscriberSpec.php + + - + message: '#^Cannot call method willReturn\(\) on string\|null\.$#' + identifier: method.nonObject + count: 3 + path: spec/EventSubscriber/XLocationIdResponseSubscriberSpec.php + + - + message: '#^Class spec\\Ibexa\\HttpCache\\EventSubscriber\\XLocationIdResponseSubscriberSpec extends generic class PhpSpec\\ObjectBehavior but does not specify its types\: TKey, TValue$#' + identifier: missingType.generics + count: 1 + path: spec/EventSubscriber/XLocationIdResponseSubscriberSpec.php + + - + message: '#^Method Symfony\\Component\\HttpFoundation\\ResponseHeaderBag\:\:set\(\) invoked with 0 parameters, 2\-3 required\.$#' + identifier: arguments.count + count: 1 + path: spec/EventSubscriber/XLocationIdResponseSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\XLocationIdResponseSubscriberSpec\:\:it_does_not_rewrite_header_if_there_is_none\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/XLocationIdResponseSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\XLocationIdResponseSubscriberSpec\:\:it_rewrite_header_also_in_unofficial_plural_form_and_merges_exisitng_value\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/XLocationIdResponseSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\XLocationIdResponseSubscriberSpec\:\:it_rewrite_header_on_not_found_location\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/XLocationIdResponseSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\XLocationIdResponseSubscriberSpec\:\:it_rewrite_header_with_location_info\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/XLocationIdResponseSubscriberSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\EventSubscriber\\XLocationIdResponseSubscriberSpec\:\:let\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/EventSubscriber/XLocationIdResponseSubscriberSpec.php + + - + message: '#^Parameter \#1 \$callback of method Ibexa\\Core\\Repository\\Repository\:\:sudo\(\) expects callable\(Ibexa\\Contracts\\Core\\Repository\\Repository\)\: T, Prophecy\\Argument\\Token\\AnyValueToken given\.$#' + identifier: argument.type + count: 3 + path: spec/EventSubscriber/XLocationIdResponseSubscriberSpec.php + + - + message: '#^Call to an undefined method Symfony\\Component\\HttpFoundation\\Response\:\:shouldBeCalled\(\)\.$#' + identifier: method.notFound + count: 1 + path: spec/Handler/TagHandlerSpec.php + + - + message: '#^Call to an undefined method Symfony\\Component\\HttpFoundation\\Response\:\:shouldNotBeCalled\(\)\.$#' + identifier: method.notFound + count: 1 + path: spec/Handler/TagHandlerSpec.php + + - + message: '#^Call to an undefined method spec\\Ibexa\\HttpCache\\Handler\\TagHandlerSpec\:\:addTags\(\)\.$#' + identifier: method.notFound + count: 10 + path: spec/Handler/TagHandlerSpec.php + + - + message: '#^Call to an undefined method spec\\Ibexa\\HttpCache\\Handler\\TagHandlerSpec\:\:tagSymfonyResponse\(\)\.$#' + identifier: method.notFound + count: 10 + path: spec/Handler/TagHandlerSpec.php + + - + message: '#^Cannot call method shouldBeCalled\(\) on bool\|string\|null\.$#' + identifier: method.nonObject + count: 2 + path: spec/Handler/TagHandlerSpec.php + + - + message: '#^Cannot call method shouldBeCalled\(\) on null\.$#' + identifier: method.nonObject + count: 1 + path: spec/Handler/TagHandlerSpec.php + + - + message: '#^Cannot call method shouldNotBeCalled\(\) on bool\.$#' + identifier: method.nonObject + count: 1 + path: spec/Handler/TagHandlerSpec.php + + - + message: '#^Cannot call method willReturn\(\) on array\\|string\|null\>\.$#' + identifier: method.nonObject + count: 4 + path: spec/Handler/TagHandlerSpec.php + + - + message: '#^Cannot call method willReturn\(\) on bool\.$#' + identifier: method.nonObject + count: 6 + path: spec/Handler/TagHandlerSpec.php + + - + message: '#^Cannot call method willReturn\(\) on string\.$#' + identifier: method.nonObject + count: 3 + path: spec/Handler/TagHandlerSpec.php + + - + message: '#^Class spec\\Ibexa\\HttpCache\\Handler\\TagHandlerSpec extends generic class PhpSpec\\ObjectBehavior but does not specify its types\: TKey, TValue$#' + identifier: missingType.generics + count: 1 + path: spec/Handler/TagHandlerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\Handler\\TagHandlerSpec\:\:it_ignores_too_long_tag_header\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/Handler/TagHandlerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\Handler\\TagHandlerSpec\:\:it_ignores_too_long_tag_header_and_reduces_ttl\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/Handler/TagHandlerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\Handler\\TagHandlerSpec\:\:it_only_tags_ez_all_when_no_tags\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/Handler/TagHandlerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\Handler\\TagHandlerSpec\:\:it_only_tags_ez_all_when_no_tags_also_on_replace\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/Handler/TagHandlerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\Handler\\TagHandlerSpec\:\:it_tags_all_tags_we_add\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/Handler/TagHandlerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\Handler\\TagHandlerSpec\:\:it_tags_all_tags_we_add_and_prefix_with_repo_id\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/Handler/TagHandlerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\Handler\\TagHandlerSpec\:\:it_tags_all_tags_we_add_and_prefix_with_repo_id_also_with_existing_header\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/Handler/TagHandlerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\Handler\\TagHandlerSpec\:\:it_tags_with_existing_header_array\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/Handler/TagHandlerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\Handler\\TagHandlerSpec\:\:it_tags_with_existing_header_mixed\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/Handler/TagHandlerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\Handler\\TagHandlerSpec\:\:it_tags_with_existing_header_string\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/Handler/TagHandlerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\Handler\\TagHandlerSpec\:\:let\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/Handler/TagHandlerSpec.php + + - + message: '#^Result of method Psr\\Log\\LoggerInterface\:\:warning\(\) \(void\) is used\.$#' + identifier: method.void + count: 1 + path: spec/Handler/TagHandlerSpec.php + + - + message: '#^Call to an undefined method Psr\\Http\\Message\\RequestInterface\:\:shouldHaveBeenCalled\(\)\.$#' + identifier: method.notFound + count: 1 + path: spec/ProxyClient/VarnishSpec.php + + - + message: '#^Call to an undefined method Psr\\Http\\Message\\RequestInterface\:\:willReturn\(\)\.$#' + identifier: method.notFound + count: 1 + path: spec/ProxyClient/VarnishSpec.php + + - + message: '#^Call to an undefined method spec\\Ibexa\\HttpCache\\ProxyClient\\VarnishSpec\:\:purge\(\)\.$#' + identifier: method.notFound + count: 3 + path: spec/ProxyClient/VarnishSpec.php + + - + message: '#^Cannot call method willReturn\(\) on bool\.$#' + identifier: method.nonObject + count: 3 + path: spec/ProxyClient/VarnishSpec.php + + - + message: '#^Class spec\\Ibexa\\HttpCache\\ProxyClient\\VarnishSpec extends generic class PhpSpec\\ObjectBehavior but does not specify its types\: TKey, TValue$#' + identifier: missingType.generics + count: 1 + path: spec/ProxyClient/VarnishSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ProxyClient\\VarnishSpec\:\:it_should_purge_with_additional_token_header_when_configuration_key_with_token_is_not_null\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ProxyClient/VarnishSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ProxyClient\\VarnishSpec\:\:it_should_purge_without_additional_token_header_when_configuration_key_with_token_do_not_exist_in_configuration\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ProxyClient/VarnishSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ProxyClient\\VarnishSpec\:\:it_should_purge_without_additional_token_header_when_configuration_key_with_token_exists_but_is_null\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ProxyClient/VarnishSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ProxyClient\\VarnishSpec\:\:let\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ProxyClient/VarnishSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ProxyClient\\VarnishSpec\:\:requestShouldHaveBeenCreatedWithHeaders\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ProxyClient/VarnishSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ProxyClient\\VarnishSpec\:\:requestShouldHaveBeenCreatedWithHeaders\(\) has parameter \$headers with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: spec/ProxyClient/VarnishSpec.php + + - + message: '#^Parameter \#3 \$headers of method Http\\Message\\RequestFactory\:\:createRequest\(\) expects array, Prophecy\\Argument\\Token\\AnyValueToken given\.$#' + identifier: argument.type + count: 1 + path: spec/ProxyClient/VarnishSpec.php + + - + message: '#^Call to an undefined method spec\\Ibexa\\HttpCache\\RepositoryTagPrefixSpec\:\:getRepositoryPrefix\(\)\.$#' + identifier: method.notFound + count: 4 + path: spec/RepositoryTagPrefixSpec.php + + - + message: '#^Class spec\\Ibexa\\HttpCache\\RepositoryTagPrefixSpec extends generic class PhpSpec\\ObjectBehavior but does not specify its types\: TKey, TValue$#' + identifier: missingType.generics + count: 1 + path: spec/RepositoryTagPrefixSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\RepositoryTagPrefixSpec\:\:it_is_initializable\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/RepositoryTagPrefixSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\RepositoryTagPrefixSpec\:\:it_returns_empty_on_default\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/RepositoryTagPrefixSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\RepositoryTagPrefixSpec\:\:it_returns_empty_on_null\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/RepositoryTagPrefixSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\RepositoryTagPrefixSpec\:\:it_returns_value_on_non_default\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/RepositoryTagPrefixSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\RepositoryTagPrefixSpec\:\:it_returns_value_on_non_default_cross_check\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/RepositoryTagPrefixSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\RepositoryTagPrefixSpec\:\:let\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/RepositoryTagPrefixSpec.php + + - + message: '#^Call to an undefined method Symfony\\Component\\HttpFoundation\\Response\:\:shouldHaveBeenCalled\(\)\.$#' + identifier: method.notFound + count: 2 + path: spec/ResponseConfigurator/ConfigurableResponseCacheConfiguratorSpec.php + + - + message: '#^Call to an undefined method Symfony\\Component\\HttpFoundation\\Response\:\:shouldNotHaveBeenCalled\(\)\.$#' + identifier: method.notFound + count: 3 + path: spec/ResponseConfigurator/ConfigurableResponseCacheConfiguratorSpec.php + + - + message: '#^Call to an undefined method Symfony\\Component\\HttpFoundation\\Response\:\:willReturn\(\)\.$#' + identifier: method.notFound + count: 2 + path: spec/ResponseConfigurator/ConfigurableResponseCacheConfiguratorSpec.php + + - + message: '#^Call to an undefined method spec\\Ibexa\\HttpCache\\ResponseConfigurator\\ConfigurableResponseCacheConfiguratorSpec\:\:enableCache\(\)\.$#' + identifier: method.notFound + count: 2 + path: spec/ResponseConfigurator/ConfigurableResponseCacheConfiguratorSpec.php + + - + message: '#^Call to an undefined method spec\\Ibexa\\HttpCache\\ResponseConfigurator\\ConfigurableResponseCacheConfiguratorSpec\:\:setSharedMaxAge\(\)\.$#' + identifier: method.notFound + count: 3 + path: spec/ResponseConfigurator/ConfigurableResponseCacheConfiguratorSpec.php + + - + message: '#^Cannot call method willReturn\(\) on bool\.$#' + identifier: method.nonObject + count: 2 + path: spec/ResponseConfigurator/ConfigurableResponseCacheConfiguratorSpec.php + + - + message: '#^Class spec\\Ibexa\\HttpCache\\ResponseConfigurator\\ConfigurableResponseCacheConfiguratorSpec extends generic class PhpSpec\\ObjectBehavior but does not specify its types\: TKey, TValue$#' + identifier: missingType.generics + count: 1 + path: spec/ResponseConfigurator/ConfigurableResponseCacheConfiguratorSpec.php + + - + message: '#^Method Symfony\\Component\\HttpFoundation\\Response\:\:setSharedMaxAge\(\) invoked with 2 parameters, 1 required\.$#' + identifier: arguments.count + count: 1 + path: spec/ResponseConfigurator/ConfigurableResponseCacheConfiguratorSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ResponseConfigurator\\ConfigurableResponseCacheConfiguratorSpec\:\:it_does_not_set_cache_control_if_viewcache_is_disabled\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ResponseConfigurator/ConfigurableResponseCacheConfiguratorSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ResponseConfigurator\\ConfigurableResponseCacheConfiguratorSpec\:\:it_does_not_set_shared_maxage_if_it_is_already_set_in_the_response\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ResponseConfigurator/ConfigurableResponseCacheConfiguratorSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ResponseConfigurator\\ConfigurableResponseCacheConfiguratorSpec\:\:it_does_not_set_shared_maxage_if_ttl_cache_is_disabled\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ResponseConfigurator/ConfigurableResponseCacheConfiguratorSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ResponseConfigurator\\ConfigurableResponseCacheConfiguratorSpec\:\:it_is_initializable\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ResponseConfigurator/ConfigurableResponseCacheConfiguratorSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ResponseConfigurator\\ConfigurableResponseCacheConfiguratorSpec\:\:it_sets_cache_control_to_public_if_viewcache_is_enabled\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ResponseConfigurator/ConfigurableResponseCacheConfiguratorSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ResponseConfigurator\\ConfigurableResponseCacheConfiguratorSpec\:\:it_sets_shared_maxage\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ResponseConfigurator/ConfigurableResponseCacheConfiguratorSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ResponseConfigurator\\ConfigurableResponseCacheConfiguratorSpec\:\:let\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ResponseConfigurator/ConfigurableResponseCacheConfiguratorSpec.php + + - + message: '#^Parameter \#1 \$value of method Symfony\\Component\\HttpFoundation\\Response\:\:setSharedMaxAge\(\) expects int, Symfony\\Component\\HttpFoundation\\Response given\.$#' + identifier: argument.type + count: 1 + path: spec/ResponseConfigurator/ConfigurableResponseCacheConfiguratorSpec.php + + - + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Content\:\:willReturn\(\)\.$#' + identifier: method.notFound + count: 1 + path: spec/ResponseTagger/Delegator/ContentValueViewTaggerSpec.php + + - + message: '#^Call to an undefined method spec\\Ibexa\\HttpCache\\ResponseTagger\\Delegator\\ContentValueViewTaggerSpec\:\:tag\(\)\.$#' + identifier: method.notFound + count: 1 + path: spec/ResponseTagger/Delegator/ContentValueViewTaggerSpec.php + + - + message: '#^Class spec\\Ibexa\\HttpCache\\ResponseTagger\\Delegator\\ContentValueViewTaggerSpec extends generic class PhpSpec\\ObjectBehavior but does not specify its types\: TKey, TValue$#' + identifier: missingType.generics + count: 1 + path: spec/ResponseTagger/Delegator/ContentValueViewTaggerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ResponseTagger\\Delegator\\ContentValueViewTaggerSpec\:\:it_delegates_tagging_of_the_content_info\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ResponseTagger/Delegator/ContentValueViewTaggerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ResponseTagger\\Delegator\\ContentValueViewTaggerSpec\:\:it_is_initializable\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ResponseTagger/Delegator/ContentValueViewTaggerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ResponseTagger\\Delegator\\ContentValueViewTaggerSpec\:\:let\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ResponseTagger/Delegator/ContentValueViewTaggerSpec.php + + - + message: '#^Call to an undefined method spec\\Ibexa\\HttpCache\\ResponseTagger\\Delegator\\DispatcherTaggerSpec\:\:tag\(\)\.$#' + identifier: method.notFound + count: 1 + path: spec/ResponseTagger/Delegator/DispatcherTaggerSpec.php + + - + message: '#^Class spec\\Ibexa\\HttpCache\\ResponseTagger\\Delegator\\DispatcherTaggerSpec extends generic class PhpSpec\\ObjectBehavior but does not specify its types\: TKey, TValue$#' + identifier: missingType.generics + count: 1 + path: spec/ResponseTagger/Delegator/DispatcherTaggerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ResponseTagger\\Delegator\\DispatcherTaggerSpec\:\:it_calls_tag_on_every_tagger\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ResponseTagger/Delegator/DispatcherTaggerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ResponseTagger\\Delegator\\DispatcherTaggerSpec\:\:it_is_initializable\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ResponseTagger/Delegator/DispatcherTaggerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ResponseTagger\\Delegator\\DispatcherTaggerSpec\:\:let\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ResponseTagger/Delegator/DispatcherTaggerSpec.php + + - + message: '#^Call to an undefined method Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\:\:willReturn\(\)\.$#' + identifier: method.notFound + count: 1 + path: spec/ResponseTagger/Delegator/LocationValueViewTaggerSpec.php + + - + message: '#^Call to an undefined method spec\\Ibexa\\HttpCache\\ResponseTagger\\Delegator\\LocationValueViewTaggerSpec\:\:tag\(\)\.$#' + identifier: method.notFound + count: 1 + path: spec/ResponseTagger/Delegator/LocationValueViewTaggerSpec.php + + - + message: '#^Class spec\\Ibexa\\HttpCache\\ResponseTagger\\Delegator\\LocationValueViewTaggerSpec extends generic class PhpSpec\\ObjectBehavior but does not specify its types\: TKey, TValue$#' + identifier: missingType.generics + count: 1 + path: spec/ResponseTagger/Delegator/LocationValueViewTaggerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ResponseTagger\\Delegator\\LocationValueViewTaggerSpec\:\:it_delegates_tagging_of_the_location\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ResponseTagger/Delegator/LocationValueViewTaggerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ResponseTagger\\Delegator\\LocationValueViewTaggerSpec\:\:it_is_initializable\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ResponseTagger/Delegator/LocationValueViewTaggerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ResponseTagger\\Delegator\\LocationValueViewTaggerSpec\:\:let\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ResponseTagger/Delegator/LocationValueViewTaggerSpec.php + + - + message: '#^Call to an undefined method FOS\\HttpCache\\ResponseTagger\:\:shouldHaveBeenCalled\(\)\.$#' + identifier: method.notFound + count: 2 + path: spec/ResponseTagger/Value/ContentInfoTaggerSpec.php + + - + message: '#^Call to an undefined method FOS\\HttpCache\\ResponseTagger\:\:shouldNotHaveBeenCalled\(\)\.$#' + identifier: method.notFound + count: 1 + path: spec/ResponseTagger/Value/ContentInfoTaggerSpec.php + + - + message: '#^Call to an undefined method spec\\Ibexa\\HttpCache\\ResponseTagger\\Value\\ContentInfoTaggerSpec\:\:tag\(\)\.$#' + identifier: method.notFound + count: 3 + path: spec/ResponseTagger/Value/ContentInfoTaggerSpec.php + + - + message: '#^Class spec\\Ibexa\\HttpCache\\ResponseTagger\\Value\\ContentInfoTaggerSpec extends generic class PhpSpec\\ObjectBehavior but does not specify its types\: TKey, TValue$#' + identifier: missingType.generics + count: 1 + path: spec/ResponseTagger/Value/ContentInfoTaggerSpec.php + + - + message: '#^Method FOS\\HttpCache\\ResponseTagger\:\:addTags\(\) invoked with 0 parameters, 1 required\.$#' + identifier: arguments.count + count: 1 + path: spec/ResponseTagger/Value/ContentInfoTaggerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ResponseTagger\\Value\\ContentInfoTaggerSpec\:\:it_ignores_non_content_info\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ResponseTagger/Value/ContentInfoTaggerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ResponseTagger\\Value\\ContentInfoTaggerSpec\:\:it_is_initializable\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ResponseTagger/Value/ContentInfoTaggerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ResponseTagger\\Value\\ContentInfoTaggerSpec\:\:it_tags_with_content_and_content_type_id\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ResponseTagger/Value/ContentInfoTaggerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ResponseTagger\\Value\\ContentInfoTaggerSpec\:\:it_tags_with_location_id_if_one_is_set\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ResponseTagger/Value/ContentInfoTaggerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ResponseTagger\\Value\\ContentInfoTaggerSpec\:\:let\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ResponseTagger/Value/ContentInfoTaggerSpec.php + + - + message: '#^Call to an undefined method FOS\\HttpCache\\ResponseTagger\:\:shouldHaveBeenCalled\(\)\.$#' + identifier: method.notFound + count: 3 + path: spec/ResponseTagger/Value/LocationTaggerSpec.php + + - + message: '#^Call to an undefined method FOS\\HttpCache\\ResponseTagger\:\:shouldNotHaveBeenCalled\(\)\.$#' + identifier: method.notFound + count: 1 + path: spec/ResponseTagger/Value/LocationTaggerSpec.php + + - + message: '#^Call to an undefined method spec\\Ibexa\\HttpCache\\ResponseTagger\\Value\\LocationTaggerSpec\:\:tag\(\)\.$#' + identifier: method.notFound + count: 4 + path: spec/ResponseTagger/Value/LocationTaggerSpec.php + + - + message: '#^Class spec\\Ibexa\\HttpCache\\ResponseTagger\\Value\\LocationTaggerSpec extends generic class PhpSpec\\ObjectBehavior but does not specify its types\: TKey, TValue$#' + identifier: missingType.generics + count: 1 + path: spec/ResponseTagger/Value/LocationTaggerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ResponseTagger\\Value\\LocationTaggerSpec\:\:it_ignores_non_location\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ResponseTagger/Value/LocationTaggerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ResponseTagger\\Value\\LocationTaggerSpec\:\:it_is_initializable\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ResponseTagger/Value/LocationTaggerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ResponseTagger\\Value\\LocationTaggerSpec\:\:it_tags_with_location_id_if_not_main_location\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ResponseTagger/Value/LocationTaggerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ResponseTagger\\Value\\LocationTaggerSpec\:\:it_tags_with_parent_location_id\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ResponseTagger/Value/LocationTaggerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ResponseTagger\\Value\\LocationTaggerSpec\:\:it_tags_with_path_items\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ResponseTagger/Value/LocationTaggerSpec.php + + - + message: '#^Method spec\\Ibexa\\HttpCache\\ResponseTagger\\Value\\LocationTaggerSpec\:\:let\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: spec/ResponseTagger/Value/LocationTaggerSpec.php + + - + message: '#^Parameter \#1 \$tags of method FOS\\HttpCache\\ResponseTagger\:\:addTags\(\) expects array\, Prophecy\\Argument\\Token\\AnyValueToken given\.$#' + identifier: argument.type + count: 1 + path: spec/ResponseTagger/Value/LocationTaggerSpec.php + + - + message: '#^Call to an undefined method Symfony\\Component\\HttpKernel\\HttpKernelInterface\:\:isDebug\(\)\.$#' + identifier: method.notFound + count: 1 + path: src/bundle/AppCache.php + + - + message: '#^Method Ibexa\\Bundle\\HttpCache\\AppCache\:\:__construct\(\) has parameter \$cacheDir with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: src/bundle/AppCache.php + + - + message: '#^Method Ibexa\\Bundle\\HttpCache\\AppCache\:\:cleanupHeadersForProd\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/bundle/AppCache.php + + - + message: '#^Method Ibexa\\Bundle\\HttpCache\\AppCache\:\:getInternalAllowedIPs\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/bundle/AppCache.php + + - + message: '#^Parameter \#1 \$code of method Symfony\\Component\\HttpFoundation\\Response\:\:setStatusCode\(\) expects int, string given\.$#' + identifier: argument.type + count: 2 + path: src/bundle/Controller/InvalidateTokenController.php + + - + message: '#^Parameter \#2 \$values of method Symfony\\Component\\HttpFoundation\\ResponseHeaderBag\:\:set\(\) expects array\\|string\|null, int given\.$#' + identifier: argument.type + count: 1 + path: src/bundle/Controller/InvalidateTokenController.php + + - + message: '#^Property Ibexa\\Bundle\\HttpCache\\Controller\\InvalidateTokenController\:\:\$tagHandler \(Ibexa\\HttpCache\\Handler\\TagHandler\) does not accept FOS\\HttpCache\\ResponseTagger\.$#' + identifier: assign.propertyType + count: 1 + path: src/bundle/Controller/InvalidateTokenController.php + + - + message: '#^Method Ibexa\\Bundle\\HttpCache\\DependencyInjection\\Compiler\\DriverPass\:\:getTaggedService\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/bundle/DependencyInjection/Compiler/DriverPass.php + + - + message: '#^Method Ibexa\\Bundle\\HttpCache\\DependencyInjection\\Compiler\\DriverPass\:\:getTaggedService\(\) has parameter \$tag with no type specified\.$#' + identifier: missingType.parameter + count: 1 + path: src/bundle/DependencyInjection/Compiler/DriverPass.php + + - + message: '#^Method Ibexa\\Bundle\\HttpCache\\DependencyInjection\\Compiler\\DriverPass\:\:process\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/bundle/DependencyInjection/Compiler/DriverPass.php + + - + message: '#^Part \$purgeType \(array\|bool\|float\|int\|string\|null\) of encapsed string cannot be cast to string\.$#' + identifier: encapsedStringPart.nonString + count: 1 + path: src/bundle/DependencyInjection/Compiler/DriverPass.php + + - + message: '#^Method Ibexa\\Bundle\\HttpCache\\DependencyInjection\\Compiler\\KernelPass\:\:isSmartCacheListener\(\) should return bool but returns int\|false\.$#' + identifier: return.type + count: 1 + path: src/bundle/DependencyInjection/Compiler/KernelPass.php + + - + message: '#^Method Ibexa\\Bundle\\HttpCache\\DependencyInjection\\Compiler\\KernelPass\:\:process\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/bundle/DependencyInjection/Compiler/KernelPass.php + + - + message: '#^Method Ibexa\\Bundle\\HttpCache\\DependencyInjection\\Compiler\\KernelPass\:\:removeKernelRoleIdContextProvider\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/bundle/DependencyInjection/Compiler/KernelPass.php + + - + message: '#^Method Ibexa\\Bundle\\HttpCache\\DependencyInjection\\Compiler\\ResponseTaggersPass\:\:process\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/bundle/DependencyInjection/Compiler/ResponseTaggersPass.php + + - + message: '#^Method Ibexa\\Bundle\\HttpCache\\DependencyInjection\\Compiler\\VarnishCachePass\:\:process\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/bundle/DependencyInjection/Compiler/VarnishCachePass.php + + - + message: '#^Method Ibexa\\Bundle\\HttpCache\\DependencyInjection\\Compiler\\VarnishCachePass\:\:processVarnishProxyClientSettings\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/bundle/DependencyInjection/Compiler/VarnishCachePass.php + + - + message: '#^Call to an undefined method Symfony\\Component\\DependencyInjection\\Extension\\ExtensionInterface\:\:getExtraConfigParsers\(\)\.$#' + identifier: method.notFound + count: 1 + path: src/bundle/DependencyInjection/ConfigResolver/HttpCacheConfigParser.php + + - + message: '#^Method Ibexa\\Bundle\\HttpCache\\DependencyInjection\\ConfigResolver\\HttpCacheConfigParser\:\:addSemanticConfig\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/bundle/DependencyInjection/ConfigResolver/HttpCacheConfigParser.php + + - + message: '#^Method Ibexa\\Bundle\\HttpCache\\DependencyInjection\\ConfigResolver\\HttpCacheConfigParser\:\:mapConfig\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/bundle/DependencyInjection/ConfigResolver/HttpCacheConfigParser.php + + - + message: '#^Method Ibexa\\Bundle\\HttpCache\\DependencyInjection\\ConfigResolver\\HttpCacheConfigParser\:\:mapConfig\(\) has parameter \$scopeSettings with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/bundle/DependencyInjection/ConfigResolver/HttpCacheConfigParser.php + + - + message: '#^Method Ibexa\\Bundle\\HttpCache\\DependencyInjection\\ConfigResolver\\HttpCacheConfigParser\:\:postMap\(\) has parameter \$config with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/bundle/DependencyInjection/ConfigResolver/HttpCacheConfigParser.php + + - + message: '#^Method Ibexa\\Bundle\\HttpCache\\DependencyInjection\\ConfigResolver\\HttpCacheConfigParser\:\:preMap\(\) has parameter \$config with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/bundle/DependencyInjection/ConfigResolver/HttpCacheConfigParser.php + + - + message: '#^Method Ibexa\\Bundle\\HttpCache\\DependencyInjection\\IbexaHttpCacheExtension\:\:addExtraConfigParser\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/bundle/DependencyInjection/IbexaHttpCacheExtension.php + + - + message: '#^Method Ibexa\\Bundle\\HttpCache\\DependencyInjection\\IbexaHttpCacheExtension\:\:getExtraConfigParsers\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/bundle/DependencyInjection/IbexaHttpCacheExtension.php + + - + message: '#^Method Ibexa\\Bundle\\HttpCache\\DependencyInjection\\IbexaHttpCacheExtension\:\:load\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/bundle/DependencyInjection/IbexaHttpCacheExtension.php + + - + message: '#^Method Ibexa\\Bundle\\HttpCache\\DependencyInjection\\IbexaHttpCacheExtension\:\:prepend\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/bundle/DependencyInjection/IbexaHttpCacheExtension.php + + - + message: '#^Parameter \#1 \$filename of static method Symfony\\Component\\Yaml\\Yaml\:\:parseFile\(\) expects string, string\|false given\.$#' + identifier: argument.type + count: 1 + path: src/bundle/DependencyInjection/IbexaHttpCacheExtension.php + + - + message: '#^Parameter \#1 \$input of static method Symfony\\Component\\Yaml\\Yaml\:\:parse\(\) expects string, string\|false given\.$#' + identifier: argument.type + count: 1 + path: src/bundle/DependencyInjection/IbexaHttpCacheExtension.php + + - + message: '#^Parameter \#1 \$resource of class Symfony\\Component\\Config\\Resource\\FileResource constructor expects string, string\|false given\.$#' + identifier: argument.type + count: 1 + path: src/bundle/DependencyInjection/IbexaHttpCacheExtension.php + + - + message: '#^Method Ibexa\\Bundle\\HttpCache\\IbexaHttpCacheBundle\:\:build\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/bundle/IbexaHttpCacheBundle.php + + - + message: '#^Method Ibexa\\Bundle\\HttpCache\\IbexaHttpCacheBundle\:\:getContainerExtension\(\) should return Symfony\\Component\\DependencyInjection\\Extension\\ExtensionInterface\|null but return statement is missing\.$#' + identifier: return.missing + count: 1 + path: src/bundle/IbexaHttpCacheBundle.php + + - + message: '#^Method Ibexa\\Bundle\\HttpCache\\IbexaHttpCacheBundle\:\:registerConfigParser\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/bundle/IbexaHttpCacheBundle.php + + - + message: '#^Method Ibexa\\Contracts\\HttpCache\\Handler\\ContentTagInterface\:\:addContentTags\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/contracts/Handler/ContentTagInterface.php + + - + message: '#^Method Ibexa\\Contracts\\HttpCache\\Handler\\ContentTagInterface\:\:addContentTags\(\) has parameter \$contentIds with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/contracts/Handler/ContentTagInterface.php + + - + message: '#^Method Ibexa\\Contracts\\HttpCache\\Handler\\ContentTagInterface\:\:addContentTypeTags\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/contracts/Handler/ContentTagInterface.php + + - + message: '#^Method Ibexa\\Contracts\\HttpCache\\Handler\\ContentTagInterface\:\:addContentTypeTags\(\) has parameter \$contentTypeIds with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/contracts/Handler/ContentTagInterface.php + + - + message: '#^Method Ibexa\\Contracts\\HttpCache\\Handler\\ContentTagInterface\:\:addLocationTags\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/contracts/Handler/ContentTagInterface.php + + - + message: '#^Method Ibexa\\Contracts\\HttpCache\\Handler\\ContentTagInterface\:\:addLocationTags\(\) has parameter \$locationIds with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/contracts/Handler/ContentTagInterface.php + + - + message: '#^Method Ibexa\\Contracts\\HttpCache\\Handler\\ContentTagInterface\:\:addParentLocationTags\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/contracts/Handler/ContentTagInterface.php + + - + message: '#^Method Ibexa\\Contracts\\HttpCache\\Handler\\ContentTagInterface\:\:addParentLocationTags\(\) has parameter \$parentLocationIds with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/contracts/Handler/ContentTagInterface.php + + - + message: '#^Method Ibexa\\Contracts\\HttpCache\\Handler\\ContentTagInterface\:\:addPathTags\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/contracts/Handler/ContentTagInterface.php + + - + message: '#^Method Ibexa\\Contracts\\HttpCache\\Handler\\ContentTagInterface\:\:addPathTags\(\) has parameter \$locationIds with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/contracts/Handler/ContentTagInterface.php + + - + message: '#^Method Ibexa\\Contracts\\HttpCache\\Handler\\ContentTagInterface\:\:addRelationLocationTags\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/contracts/Handler/ContentTagInterface.php + + - + message: '#^Method Ibexa\\Contracts\\HttpCache\\Handler\\ContentTagInterface\:\:addRelationLocationTags\(\) has parameter \$locationIds with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/contracts/Handler/ContentTagInterface.php + + - + message: '#^Method Ibexa\\Contracts\\HttpCache\\Handler\\ContentTagInterface\:\:addRelationTags\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/contracts/Handler/ContentTagInterface.php + + - + message: '#^Method Ibexa\\Contracts\\HttpCache\\Handler\\ContentTagInterface\:\:addRelationTags\(\) has parameter \$contentIds with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/contracts/Handler/ContentTagInterface.php + + - + message: '#^Method Ibexa\\Contracts\\HttpCache\\PurgeClient\\PurgeClientInterface\:\:purge\(\) has parameter \$tags with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/contracts/PurgeClient/PurgeClientInterface.php + + - + message: '#^Method Ibexa\\Contracts\\HttpCache\\ResponseTagger\\ResponseTagger\:\:tag\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/contracts/ResponseTagger/ResponseTagger.php + + - + message: '#^Method Ibexa\\HttpCache\\ContextProvider\\RoleIdentify\:\:updateUserContext\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/lib/ContextProvider/RoleIdentify.php + + - + message: '#^Property Ibexa\\HttpCache\\ContextProvider\\RoleIdentify\:\:\$repository \(Ibexa\\Core\\Repository\\Repository\) does not accept Ibexa\\Contracts\\Core\\Repository\\Repository\.$#' + identifier: assign.propertyType + count: 1 + path: src/lib/ContextProvider/RoleIdentify.php + + - + message: '#^Method Ibexa\\HttpCache\\EventListener\\ConditionallyRemoveVaryHeaderListener\:\:__construct\(\) has parameter \$routes with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/EventListener/ConditionallyRemoveVaryHeaderListener.php + + - + message: '#^Method Ibexa\\HttpCache\\EventListener\\ConditionallyRemoveVaryHeaderListener\:\:__construct\(\) has parameter \$userIdentifierHeaders with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/EventListener/ConditionallyRemoveVaryHeaderListener.php + + - + message: '#^Method Ibexa\\HttpCache\\EventListener\\ConditionallyRemoveVaryHeaderListener\:\:onKernelResponse\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/lib/EventListener/ConditionallyRemoveVaryHeaderListener.php + + - + message: '#^Parameter \#1 \$callback of function array_map expects \(callable\(array\\|string\|null\)\: mixed\)\|null, ''strtolower'' given\.$#' + identifier: argument.type + count: 1 + path: src/lib/EventListener/ConditionallyRemoveVaryHeaderListener.php + + - + message: '#^Method Ibexa\\HttpCache\\EventSubscriber\\AddContentLanguageHeaderSubscriber\:\:onKernelResponse\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/lib/EventSubscriber/AddContentLanguageHeaderSubscriber.php + + - + message: '#^Method Ibexa\\HttpCache\\EventSubscriber\\CachePurge\\AbstractSubscriber\:\:getContentLocationsTags\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/EventSubscriber/CachePurge/AbstractSubscriber.php + + - + message: '#^Method Ibexa\\HttpCache\\EventSubscriber\\CachePurge\\AbstractSubscriber\:\:getContentTags\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/EventSubscriber/CachePurge/AbstractSubscriber.php + + - + message: '#^Method Ibexa\\HttpCache\\EventSubscriber\\CachePurge\\AbstractSubscriber\:\:getContentUrlTags\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/EventSubscriber/CachePurge/AbstractSubscriber.php + + - + message: '#^Method Ibexa\\HttpCache\\EventSubscriber\\CachePurge\\AbstractSubscriber\:\:getLocationTags\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/EventSubscriber/CachePurge/AbstractSubscriber.php + + - + message: '#^Method Ibexa\\HttpCache\\EventSubscriber\\CachePurge\\AbstractSubscriber\:\:getParentLocationTags\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/EventSubscriber/CachePurge/AbstractSubscriber.php + + - + message: '#^Method Ibexa\\HttpCache\\EventSubscriber\\CachePurge\\RoleEventsSubscriber\:\:clearUserContextHashCache\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/lib/EventSubscriber/CachePurge/RoleEventsSubscriber.php + + - + message: '#^Access to protected property Ibexa\\Contracts\\Core\\Repository\\Values\\URL\\URL\:\:\$id\.$#' + identifier: property.protected + count: 1 + path: src/lib/EventSubscriber/CachePurge/UrlEventsSubscriber.php + + - + message: '#^Method Ibexa\\HttpCache\\EventSubscriber\\HiddenLocationExceptionSubscriber\:\:tagHiddenLocationExceptionResponse\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/lib/EventSubscriber/HiddenLocationExceptionSubscriber.php + + - + message: '#^PHPDoc tag @var has invalid value \(\\Ibexa\\HttpCache\\ResponseTagger\\Value\\LocationTagger;\)\: Unexpected token ";", expected TOKEN_HORIZONTAL_WS at offset 68 on line 2$#' + identifier: phpDoc.parseError + count: 1 + path: src/lib/EventSubscriber/HiddenLocationExceptionSubscriber.php + + - + message: '#^Property Ibexa\\HttpCache\\EventSubscriber\\HiddenLocationExceptionSubscriber\:\:\$locationTagger has no type specified\.$#' + identifier: missingType.property + count: 1 + path: src/lib/EventSubscriber/HiddenLocationExceptionSubscriber.php + + - + message: '#^Method Ibexa\\HttpCache\\EventSubscriber\\HttpCacheResponseSubscriber\:\:configureCache\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/lib/EventSubscriber/HttpCacheResponseSubscriber.php + + - + message: '#^Method Ibexa\\HttpCache\\EventSubscriber\\RestKernelViewSubscriber\:\:getTags\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/EventSubscriber/RestKernelViewSubscriber.php + + - + message: '#^Method Ibexa\\HttpCache\\EventSubscriber\\RestKernelViewSubscriber\:\:tagUIRestResult\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/lib/EventSubscriber/RestKernelViewSubscriber.php + + - + message: '#^Method Ibexa\\HttpCache\\EventSubscriber\\UserContextSiteAccessMatchSubscriber\:\:checkIfRequestForUserContextHash\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/lib/EventSubscriber/UserContextSiteAccessMatchSubscriber.php + + - + message: '#^Method Ibexa\\HttpCache\\EventSubscriber\\UserContextSubscriber\:\:tagUserContext\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/lib/EventSubscriber/UserContextSubscriber.php + + - + message: '#^Method Ibexa\\HttpCache\\EventSubscriber\\XLocationIdResponseSubscriber\:\:rewriteCacheHeader\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/lib/EventSubscriber/XLocationIdResponseSubscriber.php + + - + message: '#^PHPDoc tag @var has invalid value \(\$location \\Ibexa\\Contracts\\Core\\Repository\\Values\\Content\\Location\)\: Unexpected token "\$location", expected type at offset 9 on line 1$#' + identifier: phpDoc.parseError + count: 1 + path: src/lib/EventSubscriber/XLocationIdResponseSubscriber.php + + - + message: '#^Parameter \#1 \$locationId of method Ibexa\\Contracts\\Core\\Repository\\LocationService\:\:loadLocation\(\) expects int, string given\.$#' + identifier: argument.type + count: 1 + path: src/lib/EventSubscriber/XLocationIdResponseSubscriber.php + + - + message: '#^Method Ibexa\\HttpCache\\Handler\\TagHandler\:\:__construct\(\) has parameter \$options with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/Handler/TagHandler.php + + - + message: '#^Method Ibexa\\HttpCache\\Handler\\TagHandler\:\:addContentTags\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/lib/Handler/TagHandler.php + + - + message: '#^Method Ibexa\\HttpCache\\Handler\\TagHandler\:\:addContentTags\(\) has parameter \$contentIds with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/Handler/TagHandler.php + + - + message: '#^Method Ibexa\\HttpCache\\Handler\\TagHandler\:\:addContentTypeTags\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/lib/Handler/TagHandler.php + + - + message: '#^Method Ibexa\\HttpCache\\Handler\\TagHandler\:\:addContentTypeTags\(\) has parameter \$contentTypeIds with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/Handler/TagHandler.php + + - + message: '#^Method Ibexa\\HttpCache\\Handler\\TagHandler\:\:addLocationTags\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/lib/Handler/TagHandler.php + + - + message: '#^Method Ibexa\\HttpCache\\Handler\\TagHandler\:\:addLocationTags\(\) has parameter \$locationIds with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/Handler/TagHandler.php + + - + message: '#^Method Ibexa\\HttpCache\\Handler\\TagHandler\:\:addParentLocationTags\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/lib/Handler/TagHandler.php + + - + message: '#^Method Ibexa\\HttpCache\\Handler\\TagHandler\:\:addParentLocationTags\(\) has parameter \$parentLocationIds with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/Handler/TagHandler.php + + - + message: '#^Method Ibexa\\HttpCache\\Handler\\TagHandler\:\:addPathTags\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/lib/Handler/TagHandler.php + + - + message: '#^Method Ibexa\\HttpCache\\Handler\\TagHandler\:\:addPathTags\(\) has parameter \$locationIds with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/Handler/TagHandler.php + + - + message: '#^Method Ibexa\\HttpCache\\Handler\\TagHandler\:\:addRelationLocationTags\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/lib/Handler/TagHandler.php + + - + message: '#^Method Ibexa\\HttpCache\\Handler\\TagHandler\:\:addRelationLocationTags\(\) has parameter \$locationIds with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/Handler/TagHandler.php + + - + message: '#^Method Ibexa\\HttpCache\\Handler\\TagHandler\:\:addRelationTags\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/lib/Handler/TagHandler.php + + - + message: '#^Method Ibexa\\HttpCache\\Handler\\TagHandler\:\:addRelationTags\(\) has parameter \$contentIds with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/Handler/TagHandler.php + + - + message: '#^Parameter \#2 \$array of function implode expects array\, array\\|string\|null\> given\.$#' + identifier: argument.type + count: 1 + path: src/lib/Handler/TagHandler.php + + - + message: '#^Method Ibexa\\HttpCache\\ProxyClient\\HttpDispatcherFactory\:\:buildHttpDispatcher\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/lib/ProxyClient/HttpDispatcherFactory.php + + - + message: '#^Method Ibexa\\HttpCache\\ProxyClient\\HttpDispatcherFactory\:\:buildHttpDispatcher\(\) has parameter \$servers with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/ProxyClient/HttpDispatcherFactory.php + + - + message: '#^Method Ibexa\\HttpCache\\ProxyClient\\Varnish\:\:__construct\(\) has parameter \$options with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/ProxyClient/Varnish.php + + - + message: '#^Method Ibexa\\HttpCache\\ProxyClient\\Varnish\:\:fetchAndMergeAuthHeaders\(\) has parameter \$headers with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/ProxyClient/Varnish.php + + - + message: '#^Method Ibexa\\HttpCache\\ProxyClient\\Varnish\:\:fetchAndMergeAuthHeaders\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/ProxyClient/Varnish.php + + - + message: '#^Method Ibexa\\HttpCache\\ProxyClient\\Varnish\:\:queueRequest\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/lib/ProxyClient/Varnish.php + + - + message: '#^Method Ibexa\\HttpCache\\ProxyClient\\Varnish\:\:queueRequest\(\) has parameter \$headers with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/ProxyClient/Varnish.php + + - + message: '#^Parameter \#4 \$validateHost of method FOS\\HttpCache\\ProxyClient\\HttpProxyClient\:\:queueRequest\(\) expects bool, Psr\\Http\\Message\\StreamInterface\|resource\|string\|null given\.$#' + identifier: argument.type + count: 1 + path: src/lib/ProxyClient/Varnish.php + + - + message: '#^Method Ibexa\\HttpCache\\PurgeClient\\LocalPurgeClient\:\:purge\(\) has parameter \$tags with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/PurgeClient/LocalPurgeClient.php + + - + message: '#^Method Ibexa\\HttpCache\\PurgeClient\\RepositoryPrefixDecorator\:\:purge\(\) has parameter \$tags with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/PurgeClient/RepositoryPrefixDecorator.php + + - + message: '#^Method Ibexa\\HttpCache\\PurgeClient\\VarnishPurgeClient\:\:purge\(\) has parameter \$tags with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/PurgeClient/VarnishPurgeClient.php + + - + message: '#^Method Ibexa\\HttpCache\\RepositoryTagPrefix\:\:__construct\(\) has parameter \$repositories with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/RepositoryTagPrefix.php + + - + message: '#^PHPDoc tag @var has invalid value \(int\[\\]\)\: Unexpected token "\[", expected TOKEN_HORIZONTAL_WS at offset 19 on line 2$#' + identifier: phpDoc.parseError + count: 1 + path: src/lib/RepositoryTagPrefix.php + + - + message: '#^Property Ibexa\\HttpCache\\RepositoryTagPrefix\:\:\$repositoryMap has no type specified\.$#' + identifier: missingType.property + count: 1 + path: src/lib/RepositoryTagPrefix.php + + - + message: '#^Method Ibexa\\HttpCache\\ResponseTagger\\Delegator\\ContentValueViewTagger\:\:tag\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/lib/ResponseTagger/Delegator/ContentValueViewTagger.php + + - + message: '#^Argument of an invalid type Ibexa\\Contracts\\HttpCache\\ResponseTagger\\ResponseTagger supplied for foreach, only iterables are supported\.$#' + identifier: foreach.nonIterable + count: 1 + path: src/lib/ResponseTagger/Delegator/DispatcherTagger.php + + - + message: '#^Method Ibexa\\HttpCache\\ResponseTagger\\Delegator\\DispatcherTagger\:\:__construct\(\) has parameter \$taggers with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/lib/ResponseTagger/Delegator/DispatcherTagger.php + + - + message: '#^Method Ibexa\\HttpCache\\ResponseTagger\\Delegator\\DispatcherTagger\:\:tag\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/lib/ResponseTagger/Delegator/DispatcherTagger.php + + - + message: '#^Property Ibexa\\HttpCache\\ResponseTagger\\Delegator\\DispatcherTagger\:\:\$taggers \(Ibexa\\Contracts\\HttpCache\\ResponseTagger\\ResponseTagger\) does not accept array\.$#' + identifier: assign.propertyType + count: 1 + path: src/lib/ResponseTagger/Delegator/DispatcherTagger.php + + - + message: '#^Property Ibexa\\HttpCache\\ResponseTagger\\Delegator\\DispatcherTagger\:\:\$taggers \(Ibexa\\Contracts\\HttpCache\\ResponseTagger\\ResponseTagger\) does not accept default value of type array\.$#' + identifier: property.defaultValue + count: 1 + path: src/lib/ResponseTagger/Delegator/DispatcherTagger.php + + - + message: '#^Method Ibexa\\HttpCache\\ResponseTagger\\Delegator\\LocationValueViewTagger\:\:tag\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/lib/ResponseTagger/Delegator/LocationValueViewTagger.php + + - + message: '#^Method Ibexa\\HttpCache\\ResponseTagger\\Value\\ContentInfoTagger\:\:tag\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/lib/ResponseTagger/Value/ContentInfoTagger.php + + - + message: '#^Method Ibexa\\HttpCache\\ResponseTagger\\Value\\LocationTagger\:\:tag\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/lib/ResponseTagger/Value/LocationTagger.php + + - + message: '#^Method Ibexa\\HttpCache\\Twig\\ContentTaggingExtension\:\:tagHttpCacheForLocation\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/lib/Twig/ContentTaggingExtension.php + + - + message: '#^Method Ibexa\\HttpCache\\Twig\\ContentTaggingExtension\:\:tagHttpCacheForRelationIds\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/lib/Twig/ContentTaggingExtension.php + + - + message: '#^Method Ibexa\\HttpCache\\Twig\\ContentTaggingExtension\:\:tagHttpCacheForRelationLocationIds\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/lib/Twig/ContentTaggingExtension.php diff --git a/phpstan.neon.dist b/phpstan.neon.dist new file mode 100644 index 0000000..fa9a535 --- /dev/null +++ b/phpstan.neon.dist @@ -0,0 +1,12 @@ +includes: + - vendor/phpstan/phpstan-phpunit/extension.neon + - vendor/phpstan/phpstan-symfony/extension.neon + - phpstan-baseline.neon + - ignore-by-php-version.neon.php + +parameters: + level: 8 + paths: + - src + - spec + treatPhpDocTypesAsCertain: false