Built-in Casts Overview
Casts implement CastsValue with two methods:
get(mixed $value): mixed— transforms raw input → typed PHP value (hydration)set(mixed $value): mixed— transforms PHP value → serializable form (serialization)
Quick Reference
| Cast | Hydration result | Serialization output |
|---|---|---|
DateTimeCast | DateTime | formatted string |
DateTimeImmutableCast | DateTimeImmutable | formatted string |
EnumCast | BackedEnum instance | backing value |
BooleanCast | bool | bool |
IntegerCast | int | int |
FloatCast | float | float |
TrimCast | trimmed string | trimmed string |
JsonCast | array | JSON string |
EncryptedCast | plaintext string | encrypted ciphertext |
Applying Casts
php
use StdOut\SimpleDataObjects\Attributes\Cast;
use StdOut\SimpleDataObjects\Casts\DateTimeCast;
class EventData extends BaseData
{
public function __construct(
#[Cast(new DateTimeCast('Y-m-d H:i:s'))]
public readonly DateTime $createdAt,
) {}
}CastsValue Interface
php
interface CastsValue
{
public function get(mixed $value): mixed;
public function set(mixed $value): mixed;
}See Custom Casts → for implementing your own.