From 6c18a2390978775133914c624ffe9af5f48412dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rub=C3=A9n=20Robles?= Date: Fri, 6 Oct 2023 13:12:24 +0200 Subject: [PATCH] fix php static analisis issues --- src/Contracts/ValidatedDataTransferObject.php | 4 ++-- src/DataTransferObject.php | 2 +- src/PropertiesMapper.php | 10 ++++------ 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/Contracts/ValidatedDataTransferObject.php b/src/Contracts/ValidatedDataTransferObject.php index 8af8eb4..942852e 100644 --- a/src/Contracts/ValidatedDataTransferObject.php +++ b/src/Contracts/ValidatedDataTransferObject.php @@ -15,8 +15,8 @@ public static function request(): string; /** * Initialise data transfer object from a request. */ - public static function fromRequest(Request|FormRequest $request): static; - + public static function fromRequest(Request|FormRequest $request); + /** * Initialise data transfer object from array. */ diff --git a/src/DataTransferObject.php b/src/DataTransferObject.php index 0519186..61e639f 100644 --- a/src/DataTransferObject.php +++ b/src/DataTransferObject.php @@ -17,7 +17,7 @@ abstract class DataTransferObject implements Arrayable /** * Initialise data transfer object from a request. */ - public static function fromRequest(Request|FormRequest $request): static + public static function fromRequest(Request|FormRequest $request) { return static::fromArray(array_merge( is_object($request->route()) ? $request->route()->parameters() : [], diff --git a/src/PropertiesMapper.php b/src/PropertiesMapper.php index a594514..f5e0132 100644 --- a/src/PropertiesMapper.php +++ b/src/PropertiesMapper.php @@ -7,6 +7,7 @@ use Carbon\CarbonInterface; use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Database\Eloquent\Builder; +use Illuminate\Database\Eloquent\Collection as EloquentCollection; use Illuminate\Database\Eloquent\Model; use Illuminate\Http\Request; use Illuminate\Support\Carbon; @@ -93,7 +94,7 @@ public function run(): static } $this->data[$key] = match (true) { - $preferredType->isCollection() || $preferredTypeClass === Collection::class => $this->mapIntoCollection($propertyTypes, $key, $value), + $preferredType->isCollection() || $preferredTypeClass === Collection::class || $preferredTypeClass === EloquentCollection::class => $this->mapIntoCollection($propertyTypes, $key, $value), is_subclass_of($preferredTypeClass, Model::class) => $this->mapIntoModel($preferredTypeClass, $key, $value), is_subclass_of($preferredTypeClass, BackedEnum::class) => $preferredTypeClass::tryFrom($value), is_subclass_of($preferredTypeClass, CarbonInterface::class) || $preferredTypeClass === CarbonInterface::class => $this->mapIntoCarbonDate($preferredTypeClass, $value), @@ -216,15 +217,12 @@ public function mapIntoCarbonDate($carbonClass, mixed $value): ?CarbonInterface * Map data value into collection of items with subtypes. * * @param array<\Symfony\Component\PropertyInfo\Type> $propertyTypes + * @param \Illuminate\Support\Collection|\Illuminate\Database\Eloquent\Collection|array|string $value */ protected function mapIntoCollection(array $propertyTypes, string $propertyKey, mixed $value) { if ($value instanceof Collection) { - return $value; - } - - if ($value instanceof \Illuminate\Database\Eloquent\Collection) { - return $value->toBase(); + return $value instanceof EloquentCollection ? $value->toBase() : $value; } $propertyType = reset($propertyTypes);