juanchosl / datatransfer
一个小巧轻量级的工具,用于使用相同的方法从不同的来源读取值和属性
1.0.6
2024-06-19 22:59 UTC
Requires
- php: ^7.1 || ^8.0
- juanchosl/exceptions: ^1.0
Requires (Dev)
- phpstan/phpstan: 1.9.1
- phpunit/phpunit: 9.5.25
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