From 0d1b5d62613e56f6ba763c498779efa64bafc8f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20W=C3=B3js?= Date: Sun, 11 May 2025 14:52:25 +0200 Subject: [PATCH 1/7] [Composer] Added phpstan/* dependencies --- composer.json | 4 ++++ 1 file changed, 4 insertions(+) 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" From 445f8ea405819e4e8cbba6db30ae3eea51195e60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20W=C3=B3js?= Date: Sun, 11 May 2025 14:53:28 +0200 Subject: [PATCH 2/7] [PHPStan] Configured phpstan and initialized baseline --- phpstan-baseline.neon | 1885 +++++++++++++++++++++++++++++++++++++++++ phpstan.neon.dist | 12 + 2 files changed, 1897 insertions(+) create mode 100644 phpstan-baseline.neon create mode 100644 phpstan.neon.dist diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon new file mode 100644 index 0000000..ef5b591 --- /dev/null +++ b/phpstan-baseline.neon @@ -0,0 +1,1885 @@ +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: '#^Parameter \#2 \$string of function explode expects string, string\|null 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 \#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 \$array of function implode expects array\, array\\|string\|null\> 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 + + - + 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..8675690 --- /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 + + +parameters: + level: 8 + paths: + - src + - spec + treatPhpDocTypesAsCertain: false From b2f85f050c57f01fbcbdff2c0a48bdc000702f8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20W=C3=B3js?= Date: Sun, 11 May 2025 15:01:35 +0200 Subject: [PATCH 3/7] [GHA] Added PHPStan analysis step to CI workflow --- .github/workflows/ci.yaml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index d691ad0..c51fa55 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -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@v2 + + - 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@v1" + with: + dependency-versions: "highest" + + - name: Run PHPStan analysis + run: composer run-script phpstan + tests: name: Tests runs-on: "ubuntu-24.04" From a42eb3dba67963b6a804109b1adae6cdd13b7477 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20W=C3=B3js?= Date: Wed, 21 May 2025 20:21:39 +0200 Subject: [PATCH 4/7] [GHA] Bump PHP version for code style check and tests fixup! fixup! [GHA] Bump PHP version for code style check and tests --- .github/workflows/ci.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index c51fa55..716efed 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -14,7 +14,7 @@ jobs: strategy: matrix: php: - - '8.0' + - '7.4' steps: - uses: actions/checkout@v2 @@ -69,7 +69,7 @@ jobs: matrix: php: - '7.4' - - '8.0' + - '8.3' composer_options: [ "" ] include: - php: '8.1' From 033882c03b3ae093936ba2c902898703a290e765 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20W=C3=B3js?= Date: Wed, 21 May 2025 21:14:31 +0200 Subject: [PATCH 5/7] [PHPStan] Difference baseline per PHP version --- ignore-by-php-version.neon.php | 19 +++++++++++++++++++ ignore-gte-php8.0-errors.neon | 23 +++++++++++++++++++++++ ignore-php7.4-errors.neon | 23 +++++++++++++++++++++++ phpstan-baseline.neon | 24 ------------------------ phpstan.neon.dist | 2 +- 5 files changed, 66 insertions(+), 25 deletions(-) create mode 100644 ignore-by-php-version.neon.php create mode 100644 ignore-gte-php8.0-errors.neon create mode 100644 ignore-php7.4-errors.neon 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 index ef5b591..1594049 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -1608,12 +1608,6 @@ parameters: count: 1 path: src/lib/EventSubscriber/XLocationIdResponseSubscriber.php - - - message: '#^Parameter \#2 \$string of function explode expects string, string\|null 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 @@ -1704,30 +1698,12 @@ parameters: count: 1 path: src/lib/Handler/TagHandler.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 \$array of function implode expects array\, array\\|string\|null\> 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 - - message: '#^Method Ibexa\\HttpCache\\ProxyClient\\HttpDispatcherFactory\:\:buildHttpDispatcher\(\) has no return type specified\.$#' identifier: missingType.return diff --git a/phpstan.neon.dist b/phpstan.neon.dist index 8675690..fa9a535 100644 --- a/phpstan.neon.dist +++ b/phpstan.neon.dist @@ -2,7 +2,7 @@ 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 From 0af3e9e6e687f16c3640f7bdd5b7d92f9405bf0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20W=C3=B3js?= Date: Thu, 22 May 2025 13:51:39 +0200 Subject: [PATCH 6/7] Apply suggestions from code review Co-authored-by: Konrad Oboza --- .github/workflows/ci.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 716efed..36aac65 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -42,7 +42,7 @@ jobs: - '7.4' - '8.3' steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Setup PHP Action uses: shivammathur/setup-php@v2 @@ -52,7 +52,7 @@ jobs: extensions: 'pdo_sqlite, gd' tools: cs2pr - - uses: "ramsey/composer-install@v1" + - uses: "ramsey/composer-install@v3" with: dependency-versions: "highest" From f52befce09de2a1600bd2d5ccdf64036d091235f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20W=C3=B3js?= Date: Thu, 22 May 2025 13:58:53 +0200 Subject: [PATCH 7/7] Update .github/workflows/ci.yaml Co-authored-by: Konrad Oboza --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 36aac65..d7c9b25 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -14,7 +14,7 @@ jobs: strategy: matrix: php: - - '7.4' + - '8.1' steps: - uses: actions/checkout@v2