Skip to content

Latest commit

 

History

History
55 lines (43 loc) · 1.06 KB

general-usage.md

File metadata and controls

55 lines (43 loc) · 1.06 KB

General usage

To hydrate existing object:

use Yiisoft\Hydrator\Hydrator;

$hydrator = new Hydrator();
$hydrator->hydrate($object, $data);

To create a new object and fill it with the data:

use Yiisoft\Hydrator\Hydrator;

$hydrator = new Hydrator();
$object = $hydrator->create(MyClass::class, $data);

To pass arguments to the constructor of a nested object, use nested array or dot-notation:

final class Engine
{
    public function __construct(
        private string $name,
    ) {}
}

final class Car
{
    public function __construct(
        private string $name,
        private Engine $engine,
    ) {}
}

// nested array
$object = $hydrator->create(Car::class, [
    'name' => 'Ferrari',
    'engine' => [
        'name' => 'V8',
    ]
]);

// or dot-notation
$object = $hydrator->create(Car::class, [
    'name' => 'Ferrari',
    'engine.name' => 'V8',
]);

That would pass the name constructor argument of the Car object and create a new Engine object for engine argument passing V8 as the name argument to its constructor.