![]() Server : Apache/2.4.62 (Unix) OpenSSL/1.0.2k-fips System : Linux server1.richineiserver.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : fdshops ( 1003) PHP Version : 8.2.21 Disable Function : NONE Directory : /home/fdshops/public_html/vendor/spatie/data-transfer-object/src/Attributes/ |
<?php namespace Spatie\DataTransferObject\Attributes; use Attribute; use JetBrains\PhpStorm\Immutable; use ReflectionNamedType; use ReflectionProperty; use ReflectionUnionType; use Spatie\DataTransferObject\Caster; #[Attribute(Attribute::TARGET_CLASS | Attribute::IS_REPEATABLE)] class DefaultCast { public function __construct( #[Immutable] private string $targetClass, #[Immutable] private string $casterClass, ) { } public function accepts(ReflectionProperty $property): bool { $type = $property->getType(); /** @var \ReflectionNamedType[]|null $types */ $types = match ($type::class) { ReflectionNamedType::class => [$type], ReflectionUnionType::class => $type->getTypes(), default => null, }; if (! $types) { return false; } foreach ($types as $type) { if ($type->getName() !== $this->targetClass) { continue; } return true; } return false; } public function resolveCaster(): Caster { return new $this->casterClass(); } }