sopheos/pebble_dataconverter
Composer 安装命令:
composer require sopheos/pebble_dataconverter
包简介
Data Mapper
README 文档
README
Bibliothèque de conversion de données structurés.
Règle de transformation
Les règles de transformations peuvent être :
- un objet de conversion qui implémente
ConverterInterface - une fonction de rappel (
callback) - Un tableau associatif qui associe des noms de propriétés d'une donnée à une règle.
- Un objet ou un nom de classe à hydrater à partir du jeu de donnée.
Chaînage
Chaque outil de conversion ConverterInterface
permet d'ajouter d'autres outils de conversions à executer ensuite.
- La méthode
one(mixed $rule): staticpermet d'ajouter une règle qui va agir sur la donnée. - La méthode
many(mixed $rule): staticpermet d'ajouter une règle qui va agir sur chaque élement d'une donnée itérable.
Liste des objets de conversion :
CallbackConverter: Transforme une fonction de rappel (callback) en objet de conversion.CollectionConverter: Applique un objet de conversion a chaque élément d'une donnée itérableDateTimeConverter: Transforme une date d'un format à un entreHydrateConverter: Transforme un tableau associatif en un objet hydratéJsonDecodeConverter: Transforme une chaine en un tableau associatif. Retourne null en cas d'erreur.JsonEncodeConverter: Transforme un tableau ou un objet en Json.MapConverter: Associe les propriétés d'un objet ou d'un tableau associatif à une règle.
Exemple :
class Car { public $number; public $model; public $date; } class User { public $name; public $birthdate; public array $cars = []; } $input = json_encode([ 'name' => 'Toto', 'birthdate' => '1980-10-03', 'cars' => [ [ 'number' => 1651984, 'model' => 'renault', 'date' => '2000-01-01' ], [ 'number' => 2061161, 'model' => 'audi', 'date' => '2021-08-19' ], ] ]); $carConverter = MapConverter::create() ->map('model', function ($input) { return ucfirst($input); }) ->map('date', DatetimeConverter::create('Y-m-d', 'd/m/Y')) ->one(Car::class); $userConverter = JsonDecodeConverter::create() ->one([ 'birthdate' => DatetimeConverter::create('Y-m-d', 'd/m/Y'), 'cars' => Converter::create()->many($carConverter) ]) ->one(new User); $output = $userConverter($input);
Résultat :
User Object
(
[name] => Toto
[birthdate] => 03/10/1980
[cars] => Array
(
[0] => Car Object
(
[number] => 1651984
[model] => Renault
[date] => 01/01/2000
)
[1] => Car Object
(
[number] => 2061161
[model] => Audi
[date] => 19/08/2021
)
)
)
sopheos/pebble_dataconverter 适用场景与选型建议
sopheos/pebble_dataconverter 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 255 次下载、GitHub Stars 达 1, 最近一次更新时间为 2023 年 08 月 03 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 sopheos/pebble_dataconverter 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 sopheos/pebble_dataconverter 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 255
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 6
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-08-03