inok / dto
DTO with Hydration for PDO
1.0.0
2023-12-02 08:54 UTC
Requires
- php: >=7.4.0
- ext-json: *
Requires (Dev)
- phpunit/phpunit: 9.6.13
This package is auto-updated.
Last update: 2024-12-01 00:15:41 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:s
show
- для остального (toArray
,toJSON
). Если не указано, то используется форматY-m-d H:i:s