diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index e50f586..1158007 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -231,17 +231,12 @@ parameters: path: src/bundle/IbexaSearchBundle.php - - message: "#^Method Ibexa\\\\Search\\\\Mapper\\\\PagerSearchContentToDataMapper\\:\\:map\\(\\) has parameter \\$pager with generic class Pagerfanta\\\\Pagerfanta but does not specify its types\\: T$#" - count: 1 - path: src/lib/Mapper/PagerSearchContentToDataMapper.php - - - - message: "#^Method Ibexa\\\\Search\\\\Mapper\\\\PagerSearchContentToDataMapper\\:\\:map\\(\\) return type has no value type specified in iterable type array\\.$#" + message: "#^Cannot access offset int on iterable\\\\.$#" count: 1 path: src/lib/Mapper/PagerSearchContentToDataMapper.php - - message: "#^Method Ibexa\\\\Search\\\\Mapper\\\\PagerSearchContentToDataMapper\\:\\:setTranslatedContentTypesNames\\(\\) has parameter \\$data with no value type specified in iterable type array\\.$#" + message: "#^Method Ibexa\\\\Search\\\\Mapper\\\\PagerSearchContentToDataMapper\\:\\:map\\(\\) has parameter \\$pager with generic class Pagerfanta\\\\Pagerfanta but does not specify its types\\: T$#" count: 1 path: src/lib/Mapper/PagerSearchContentToDataMapper.php diff --git a/src/lib/Mapper/PagerSearchContentToDataMapper.php b/src/lib/Mapper/PagerSearchContentToDataMapper.php index 356866c..b38a033 100644 --- a/src/lib/Mapper/PagerSearchContentToDataMapper.php +++ b/src/lib/Mapper/PagerSearchContentToDataMapper.php @@ -21,6 +21,25 @@ use Ibexa\Core\Repository\LocationResolver\LocationResolver; use Pagerfanta\Pagerfanta; +/** + * @phpstan-type TData = array{ + * content: \Ibexa\Contracts\Core\Repository\Values\Content\Content, + * contentTypeId: int, + * contentId: int, + * name: string, + * language: string, + * contributor: \Ibexa\Contracts\Core\Repository\Values\User\User|null, + * version: int, + * content_type: \Ibexa\Contracts\Core\Repository\Values\ContentType\ContentType, + * modified: \DateTimeInterface, + * initialLanguageCode: string, + * content_is_user: bool, + * available_enabled_translations: iterable<\Ibexa\Contracts\Core\Repository\Values\Content\Language>, + * available_translations: iterable<\Ibexa\Contracts\Core\Repository\Values\Content\Language>, + * translation_language_code: string, + * resolvedLocation: \Ibexa\Contracts\Core\Repository\Values\Content\Location + * } + */ class PagerSearchContentToDataMapper { /** @var \Ibexa\Contracts\Core\Repository\ContentTypeService */ @@ -57,6 +76,9 @@ public function __construct( $this->locationResolver = $locationResolver; } + /** + * @phpstan-return TData[] + */ public function map(Pagerfanta $pager): array { $data = []; @@ -138,8 +160,8 @@ protected function getContributor(ContentInfo $contentInfo): ?User } /** - * @param array $data - * @param int[] $contentTypeIds + * @phpstan-param TData[] $data + * @phpstan-param int[] $contentTypeIds */ protected function setTranslatedContentTypesNames(array &$data, array $contentTypeIds): void {