Skip to content

Casts API

Complete API reference for cast classes.

#[Cast(StringCast::class)]
public readonly string $name;
#[Cast(IntCast::class)]
public readonly int $age;
#[Cast(FloatCast::class)]
public readonly float $price;
#[Cast(BoolCast::class)]
public readonly bool $active;
#[Cast(ArrayCast::class)]
public readonly array $tags;
#[Cast(DateTimeCast::class)]
public readonly Carbon $createdAt;
#[Cast(DateTimeCast::class, format: 'Y-m-d H:i:s')]
public readonly Carbon $updatedAt;
#[Cast(DateCast::class)]
public readonly Carbon $birthDate;
#[Cast(TimeCast::class)]
public readonly Carbon $startTime;
#[Cast(TimestampCast::class)]
public readonly Carbon $timestamp;
#[Cast(EnumCast::class)]
public readonly Status $status;
#[Cast(BackedEnumCast::class)]
public readonly Role $role;
#[Cast(CollectionCast::class)]
public readonly Collection $items;
#[Cast(DataCollectionCast::class, itemClass: UserDTO::class)]
public readonly DataCollection $users;
#[Cast(ObjectCast::class, class: Address::class)]
public readonly Address $address;
#[Cast(DTOCast::class, class: UserDTO::class)]
public readonly UserDTO $user;
#[Cast(EncryptedCast::class)]
public readonly string $ssn;
#[Cast(HashedCast::class)]
public readonly string $password;
#[Cast(JsonCast::class)]
public readonly array $metadata;
#[Cast(DecimalCast::class, precision: 2)]
public readonly string $price;
#[Cast(UuidCast::class)]
public readonly string $uuid;
#[Cast(IpAddressCast::class)]
public readonly string $ipAddress;
#[Cast(UrlCast::class)]
public readonly string $website;
use event4u\DataHelpers\SimpleDTO\Contracts\Cast;
class UpperCaseCast implements Cast
{
public function cast(mixed $value): string
{
return strtoupper((string) $value);
}
public function uncast(mixed $value): string
{
return strtolower((string) $value);
}
}
// Usage
#[Cast(UpperCaseCast::class)]
public readonly string $name;