diff --git a/src/Analyze/Result/EntityResult.php b/src/Analyze/Result/EntityResult.php index 8e52aa7..abd19f3 100644 --- a/src/Analyze/Result/EntityResult.php +++ b/src/Analyze/Result/EntityResult.php @@ -27,6 +27,7 @@ readonly class EntityResult */ public function fieldsWithoutId(): array { + /** @var list */ return array_filter($this->fields, static fn(EntityField $field) => !$field->isIdField); } } diff --git a/src/Repository/ResolutionStrategy/EntityToDataMapper.php b/src/Repository/ResolutionStrategy/EntityToDataMapper.php index 34d7ec9..11d9d77 100644 --- a/src/Repository/ResolutionStrategy/EntityToDataMapper.php +++ b/src/Repository/ResolutionStrategy/EntityToDataMapper.php @@ -9,6 +9,7 @@ use Kartierung\Analyze\Result\EntityResult; use Kartierung\Analyze\Result\FieldAccess; use Kartierung\Analyze\Result\Type\ArrayType; use Kartierung\Analyze\Result\Type\ClassType; +use Kartierung\Repository\InvalidCall; class EntityToDataMapper { @@ -47,7 +48,8 @@ class EntityToDataMapper { return match ($field->readAccess) { FieldAccess::PUBLIC => $entity->{$field->name}, - FieldAccess::GETTER => $entity->{'get' . ucfirst($field->name)}() + FieldAccess::GETTER => $entity->{'get' . ucfirst($field->name)}(), + FieldAccess::NONE => throw new InvalidCall("Field $field->name cannot be accessed.") }; } } diff --git a/src/Repository/ResolutionStrategy/Execution/InsertEntity.php b/src/Repository/ResolutionStrategy/Execution/InsertEntity.php index 8957c65..078e287 100644 --- a/src/Repository/ResolutionStrategy/Execution/InsertEntity.php +++ b/src/Repository/ResolutionStrategy/Execution/InsertEntity.php @@ -41,6 +41,10 @@ readonly class InsertEntity return $newEntity; } + /** + * @param EntityResult $entityResult + * @param array $data + */ private function insertWithNewId(EntityResult $entityResult, array $data): string|false { $cols = implode(", ", array_map( diff --git a/src/Repository/ResolutionStrategy/Execution/UpdateEntity.php b/src/Repository/ResolutionStrategy/Execution/UpdateEntity.php index f9010d7..482c524 100644 --- a/src/Repository/ResolutionStrategy/Execution/UpdateEntity.php +++ b/src/Repository/ResolutionStrategy/Execution/UpdateEntity.php @@ -34,7 +34,10 @@ readonly class UpdateEntity ); $id = $data[$entityResult->idField->columnName] ?? null; $params[] = $id; - // reindex keys for pdo + /** + * reindex for pdo + * @phpstan-ignore arrayValues.list + */ $params = array_values($params); $sql = "UPDATE $entityResult->tableName SET $pairs WHERE $idWhere"; @@ -56,8 +59,10 @@ readonly class UpdateEntity $entity = (new SelectEntityById($this->pdo))->select($entityResult, $id); if (!$entity) { + /** @phpstan-ignore argument.type */ + $idStr = strval($id); throw new InvalidCall( - "Entity of type $entityResult->classFqcn with id $id can not be selected." + "Entity of type $entityResult->classFqcn with id $idStr can not be selected." ); } diff --git a/src/Repository/ResolutionStrategy/FindById.php b/src/Repository/ResolutionStrategy/FindById.php index e107419..058011e 100644 --- a/src/Repository/ResolutionStrategy/FindById.php +++ b/src/Repository/ResolutionStrategy/FindById.php @@ -22,8 +22,10 @@ readonly class FindById implements ResolutionStrategy static function (PDO $pdo) use ($method, $parameters) { $id = array_first($parameters); if($id === null || count($parameters) !== 1) { + /** @phpstan-ignore argument.type */ + $idStr = strval($id); throw new InvalidCall( - "Expected exactly on parameter as id of an entity to find. $id was given." + "Expected exactly on parameter as id of an entity to find. $idStr was given." ); }