Гидратация
Как строки базы данных преобразуются в PHP-объекты.
Обзор
Гидратация — это процесс преобразования необработанных строк БД (ассоциативных массивов) в типизированные PHP DTO-объекты. Rowcast по умолчанию использует Reflection-гидратор, который выполняет это автоматически.
Встроенная гидратация
Гидратация выполняется встроенным Hydrator:
- Создаёт новый экземпляр DTO-класса без вызова конструктора
- Маппит каждое значение колонки в соответствующее свойство
- Конвертирует значения к объявленным PHP-типам через
TypeConverterInterface - Устанавливает значения свойств через Reflection
use AsceticSoft\Rowcast\DataMapper;
$mapper = new DataMapper($connection);
// Гидратация одной строки
$user = $mapper->hydrate(User::class, [
'id' => 1,
'name' => 'Alice',
'email' => 'alice@example.com',
]);
// Гидратация нескольких строк
$users = $mapper->hydrateAll(User::class, $rows);
С пользовательским маппингом
use AsceticSoft\Rowcast\Mapping;
$mapping = Mapping::explicit(User::class, 'users')
->column('usr_email', 'email');
$user = $mapper->hydrate($mapping, [
'id' => 1,
'usr_email' => 'alice@example.com',
]);
Тот же пайплайн гидратации используется в findOne(), findAll() и iterateAll().