Skip to content

Commit

Permalink
Fixed Phpstan declaration for Content Validators
Browse files Browse the repository at this point in the history
  • Loading branch information
Steveb-p committed Sep 15, 2023
1 parent 47d23d1 commit ef7c931
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 41 deletions.
40 changes: 0 additions & 40 deletions phpstan-baseline.neon
Original file line number Diff line number Diff line change
Expand Up @@ -7070,11 +7070,6 @@ parameters:
count: 1
path: src/contracts/Repository/Validator/ContentValidator.php

-
message: "#^Method Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Validator\\\\ContentValidator\\:\\:validate\\(\\) return type has no value type specified in iterable type array\\.$#"
count: 1
path: src/contracts/Repository/Validator/ContentValidator.php

-
message: "#^Class Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Bookmark\\\\BookmarkList implements generic interface IteratorAggregate but does not specify its types\\: TKey, TValue$#"
count: 1
Expand Down Expand Up @@ -7500,11 +7495,6 @@ parameters:
count: 1
path: src/contracts/Repository/Values/ContentType/FieldDefinitionCollection.php

-
message: "#^Interface Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ContentType\\\\FieldDefinitionCollection extends generic interface IteratorAggregate but does not specify its types\\: TKey, TValue$#"
count: 1
path: src/contracts/Repository/Values/ContentType/FieldDefinitionCollection.php

-
message: "#^Method Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\ContentType\\\\FieldDefinitionCollection\\:\\:map\\(\\) return type has no value type specified in iterable type array\\.$#"
count: 1
Expand Down Expand Up @@ -21405,11 +21395,6 @@ parameters:
count: 1
path: src/lib/Repository/Strategy/ContentValidator/ContentValidatorStrategy.php

-
message: "#^Method Ibexa\\\\Core\\\\Repository\\\\Strategy\\\\ContentValidator\\\\ContentValidatorStrategy\\:\\:validate\\(\\) return type has no value type specified in iterable type array\\.$#"
count: 1
path: src/lib/Repository/Strategy/ContentValidator/ContentValidatorStrategy.php

-
message: "#^Property Ibexa\\\\Core\\\\Repository\\\\Strategy\\\\ContentValidator\\\\ContentValidatorStrategy\\:\\:\\$contentValidators \\(array\\<Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Validator\\\\ContentValidator\\>\\) does not accept iterable\\.$#"
count: 1
Expand Down Expand Up @@ -21670,11 +21655,6 @@ parameters:
count: 1
path: src/lib/Repository/Validator/ContentCreateStructValidator.php

-
message: "#^Method Ibexa\\\\Core\\\\Repository\\\\Validator\\\\ContentCreateStructValidator\\:\\:validate\\(\\) return type has no value type specified in iterable type array\\.$#"
count: 1
path: src/lib/Repository/Validator/ContentCreateStructValidator.php

-
message: "#^Cannot access property \\$value on Ibexa\\\\Contracts\\\\Core\\\\Repository\\\\Values\\\\Content\\\\Field\\|null\\.$#"
count: 2
Expand All @@ -21685,11 +21665,6 @@ parameters:
count: 1
path: src/lib/Repository/Validator/ContentUpdateStructValidator.php

-
message: "#^Method Ibexa\\\\Core\\\\Repository\\\\Validator\\\\ContentUpdateStructValidator\\:\\:validate\\(\\) return type has no value type specified in iterable type array\\.$#"
count: 1
path: src/lib/Repository/Validator/ContentUpdateStructValidator.php

-
message: "#^Property Ibexa\\\\Core\\\\Repository\\\\Validator\\\\ContentUpdateStructValidator\\:\\:\\$contentLanguageHandler \\(Ibexa\\\\Core\\\\Persistence\\\\Legacy\\\\Content\\\\Language\\\\Handler\\) does not accept Ibexa\\\\Contracts\\\\Core\\\\Persistence\\\\Content\\\\Language\\\\Handler\\.$#"
count: 1
Expand Down Expand Up @@ -21720,16 +21695,6 @@ parameters:
count: 1
path: src/lib/Repository/Validator/UserPasswordValidator.php

-
message: "#^Method Ibexa\\\\Core\\\\Repository\\\\Validator\\\\VersionValidator\\:\\:validate\\(\\) has parameter \\$context with no value type specified in iterable type array\\.$#"
count: 1
path: src/lib/Repository/Validator/VersionValidator.php

-
message: "#^Method Ibexa\\\\Core\\\\Repository\\\\Validator\\\\VersionValidator\\:\\:validate\\(\\) return type has no value type specified in iterable type array\\.$#"
count: 1
path: src/lib/Repository/Validator/VersionValidator.php

-
message: "#^Call to method getValue\\(\\) on an unknown class eZ\\\\Publish\\\\API\\\\Repository\\\\Values\\\\Content\\\\Field\\.$#"
count: 1
Expand Down Expand Up @@ -56730,11 +56695,6 @@ parameters:
count: 1
path: tests/lib/Repository/ContentValidator/ContentValidatorStrategyTest.php

-
message: "#^Method class@anonymous/tests/lib/Repository/ContentValidator/ContentValidatorStrategyTest\\.php\\:87\\:\\:validate\\(\\) return type has no value type specified in iterable type array\\.$#"
count: 1
path: tests/lib/Repository/ContentValidator/ContentValidatorStrategyTest.php

-
message: "#^Property class@anonymous/tests/lib/Repository/ContentValidator/ContentValidatorStrategyTest\\.php\\:87\\:\\:\\$validationReturn type has no value type specified in iterable type array\\.$#"
count: 1
Expand Down
10 changes: 9 additions & 1 deletion src/contracts/Repository/Validator/ContentValidator.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,15 @@ public function supports(ValueObject $object): bool;
* @param string[]|null $fieldIdentifiers List of field identifiers for partial validation or null for
* case of full validation. Empty identifiers array is equal to no validation.
*
* @return array Grouped validation errors by field definition and language code, in format:
* @phpstan-return array<
* int|string,
* array<
* string,
* \Ibexa\Contracts\Core\FieldType\ValidationError|\Ibexa\Contracts\Core\FieldType\ValidationError[]
* >
* >
*
* @return array Grouped validation errors by field definition ID and language code, in format:
* $returnValue[string|int $fieldDefinitionId][string $languageCode] = $fieldErrors;
*
* @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@
use Countable;
use IteratorAggregate;

/**
* @phpstan-extends \IteratorAggregate<\Ibexa\Contracts\Core\Repository\Values\ContentType\FieldDefinition>
*/
interface FieldDefinitionCollection extends Countable, IteratorAggregate, ArrayAccess
{
/**
Expand Down
6 changes: 6 additions & 0 deletions src/lib/Repository/Validator/VersionValidator.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,12 @@ public function supports(ValueObject $object): bool
return $object instanceof VersionInfo;
}

/**
* @phpstan-param array{
* content?: \Ibexa\Contracts\Core\Repository\Values\Content\Content,
* translations?: string[],
* } $context
*/
public function validate(
ValueObject $object,
array $context = [],
Expand Down

0 comments on commit ef7c931

Please sign in to comment.