Skip to content

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

CastHydration resultSerialization output
DateTimeCastDateTimeformatted string
DateTimeImmutableCastDateTimeImmutableformatted string
EnumCastBackedEnum instancebacking value
BooleanCastboolbool
IntegerCastintint
FloatCastfloatfloat
TrimCasttrimmed stringtrimmed string
JsonCastarrayJSON string
EncryptedCastplaintext stringencrypted 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.

Released under the MIT License.