Download the PHP package tailflow/castable-dto without Composer
On this page you can find all versions of the php package tailflow/castable-dto. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download tailflow/castable-dto
More information about tailflow/castable-dto
Files in tailflow/castable-dto
Package castable-dto
Short Description Automatically cast JSON columns to PHP objects in Laravel using Spatie's data-transfer-object class
License MIT
Homepage https://github.com/tailflow/castable-dto
Informations about the package castable-dto
Laravel Castable Data Transfer Object
Deprecated
Please consider using tailflow/dto instead.
Have you ever wanted to cast your JSON columns to a value object?
This package gives you an extended version of Spatie's DataTransferObject
class, called CastableDataTransferObject
.
Under the hood it implements Laravel's Castable
interface with a Laravel custom cast that handles serializing between the DataTransferObject
(or a compatible array) and your JSON database column.
Installation
You can install the package via composer:
Usage
1. Create your CastableDataTransferObject
Check out the readme for Spatie's data transfer object package to find out more about what their DataTransferObject
class can do.
2. Configure your Eloquent attribute to cast to it:
Note that this should be a jsonb
or json
column in your database schema.
And that's it! You can now pass either an instance of your Address
class, or even just an array with a compatible structure. It will automatically be cast between your class and JSON for storage and the data will be validated on the way in and out.
But the best part is that you can decorate your class with domain-specific methods to turn it into a powerful value object.
Credits
- Original package by Jess Archer
License
The MIT License (MIT). Please see License File for more information.
All versions of castable-dto with dependencies
ext-json Version *
illuminate/contracts Version >=8.0
spatie/data-transfer-object Version >=3.0