agelxnash/laravel-magic-dto

1.0.1 2024-02-25 11:52 UTC

This package is auto-updated.

Last update: 2024-04-25 12:19:59 UTC


README

Total Downloads codecov

class ExampleDto extends MagicDto
{
    public function __construct(
        public int $propInt,
        public float $propFloat,
        public CarbonImmutable $date,
        public ?ExampleDto $nested = null,
    ) {
    }
}
ExampleDto::from([
    'propInt' => 666,
    'propFloat' => '100.5',
    'date' => '2023-12-11',
    'nested' => [
        'date' => '2024-02-23',
        'propInt' => 777,
        'propFloat' => '200.1',
    ],
])
// or
ExampleDto::from([
    'prop_int' => 666,
    'prop_float' => '100.5',
    'date' => '2023-12-11',
    'nested' => [
        'date' => '2024-02-23',
        'prop_int' => 777,
        'prop_float' => '200.1',
    ],
])

Inject eloquent models

composer require "illuminate/database" required when you need to use AgelxNash\MagicDto\Attributes\InjectModel

Class User extends Illuminate\Database\Eloquent\Model {}

class ExampleDto extends MagicDto
{
    public function __construct(
        #[InjectModel(User::class, 'id')]
        public User $user1,
        #[InjectModel(User::class, 'email')]
        public User $user2,
    ) {
    }
}

ExampleDto::from(['user1' => 777]);
ExampleDto::from(['user2' => 'agel-nash@example.com']);

Author

687474703a2f2f7777772e67726176617461722e636f6d2f6176617461722f62663132643434313832633938323838303135663635633938363139303361613f733d323530

Borisov Evgeniy
Agel_Nash


Laravel, MODX, Security Audit



https://agel-nash.ru
Telegram: @agel_nash
Email: laravel@agel-nash.ru

Donation


ЮMoney: 41001299480137