juanchosl/datatransfer

一个小巧轻量级的工具,用于使用相同的方法从不同的来源读取值和属性

1.0.6 2024-06-19 22:59 UTC

This package is auto-updated.

Last update: 2024-09-20 11:26:14 UTC


README

描述

一个小巧轻量级的工具,用于使用相同的方法从不同的来源读取值和属性

安装

composer require juanchosl/datatransfer

如何使用它

加载 composer 自动加载并使用它

数据传输对象

使用提供的工厂

$dto = JuanchoSL\DataTransfer\Factories\DataTransferFactory::create($element);

参数 $element 可以是

  • 索引数组或关联数组
  • 对象
  • JSON 编码的对象或数组
  • SimpleXMLElement 对象
  • XML 字符串
  • 原始值

使用特定仓库

或者,您可以使用不同的仓库

$dto = new JuanchoSL\DataTransfer\Repositories\{SOURCE_READER}($element)

参数 $element 需要是所选仓库所需的类型。更有效的方法是使用魔法工厂,以避免了解原始数据类型,并且可以无需修改现有代码即可更改它。

结果变量 $dto 是一个递归的数据传输对象,可迭代、可计数、可克隆和可 JSON 序列化

使用数据

$dto = DataTransferFactory::create(['key' => 'value']);
echo $dto->has('key'); //true
echo $dto->get('key'); //value
echo $dto->key; //value
echo $dto->has('other_key'); //false
$dto->other_key = 'other_value';// alias for $dto->set('other_key','other_value')
echo $dto->has('other_key'); //true
echo $dto->other_key; //other_value

待办事项

当我们需要使用 CSV 内容转换为 DTO 时,我们需要使用 CsvDataTransfer,今天还不能将其与字符串或数组区分开来

数据转换器

您可以将任何 DataTransferObject 转换为标准格式,如数组、JSON、XML、stdClass

使用提供的工厂

$json = JuanchoSL\DataTransfer\Factories\DataConverterFactory::asJson($dto);

使用特定转换器

或者,您可以使用不同的转换器

$result = new JuanchoSL\DataTransfer\Converters\{SOURCE_CONVERTER}($dto)

可用的转换器有

  • ArrayConverter
  • CsvConverter
  • JsonConverter
  • ObjectConverter
  • XmlConverter
  • XmlObjectConverter