inok / dto
DTO with Hydration for PDO
Installs: 27
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/inok/dto
Requires
- php: >=7.4.0
- ext-json: *
Requires (Dev)
- phpunit/phpunit: 9.6.13
This package is auto-updated.
Last update: 2025-10-29 03:33:00 UTC
README
На данный момент поддерживаются типы: string, bool, int, float, DateTimeImmutable. Трейты:
toJSON- преобразование в JSON, можно передать список нужных полей массивомtoArray- преобразование в массив, можно передать список нужных полей массивомtoPDO- преобразование в массив, пригодный для PDO, можно передать список нужных полей массивомupdateDTO- возможность получения изменённых полей:switchUpdate- смена режима вставки/добавления DTOresetUpdate- сброс измененных полей на текущие значенияgetUpdateFields- получение списка измененных полей, если передается значение:true(по-умолчанию) - получение массива только названий полейfalse- получение массива полей, дополнительно со значениямиoldиcurrent
Пример DTO:
/** * @property int $id * @property string $name * @property string $workgroup * @property int|null $workplace_id * @property DateTimeImmutable|null $created_at */ class ComputerDTO extends HydrateDTO { private int $id; /** modify=mb_strtolower */ private string $name; private string $workgroup; private ?int $workplace_id = null; /** sql=Y-m-d H:i:s; show=Y-m-d */ private ?DateTimeImmutable $created_at = null; }
, где комментарии:
modify- функция для модификации исходного значения ДО гидрацииsql- для SQL-формата даты. Если не указано, то используется форматY-m-d H:i:sshow- для остального (toArray,toJSON). Если не указано, то используется форматY-m-d H:i:s