inok/dto

支持PDO的DTO与数据填充

1.0.0 2023-12-02 08:54 UTC

This package is auto-updated.

Last update: 2024-08-31 00:41:46 UTC


README

当前支持的类型: stringboolintfloatDateTimeImmutable。特性

  • toJSON - 转换为JSON,可以传递一个数组指定所需字段
  • toArray - 转换为数组,可以传递一个数组指定所需字段
  • toPDO - 转换为适用于PDO的数组,可以传递一个数组指定所需字段
  • updateDTO - 获取已更改的字段
    • switchUpdate - 切换DTO的插入/添加模式
    • resetUpdate - 将更改的字段重置为当前值
    • 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 - 用于其他操作(toArraytoJSON)。如果没有指定,则使用格式 Y-m-d H:i:s