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
UuidCastvalidated, lowercase stringlowercase string
CommaSeparatedCastarraydelimited string
MoneyCastMoney (minor units)int minor units

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.