xaerobiont/transfer-container

3.0.0 2022-12-11 14:54 UTC

This package is auto-updated.

Last update: 2024-09-11 18:56:30 UTC


README

PHP容器,用于在服务间传输DTO

Latest Stable Version Total Downloads

目标

  • 允许将不同的DTO传输到单个包中
  • 提供映射机制。例如,当发送者和接收者有不同的DTO命名空间或甚至类时
  • 压缩数据包
  • 非常简单、轻量级且与供应商无关

安装

{
  "require": {
    "xaerobiont/transfer-container": "^2"
  }
}

使用方法

更详细的使用示例请参阅 /tests

use Xaerobiont\TransferContainer\Transferable;
use Xaerobiont\TransferContainer\TransferContainer;

class MyDTO implements Transferable {}
class YourDTO implements Transferable {}
class ThemDTO implements Transferable {}

$package = [];
for ($i = 1; $i <= 100; $i++) {
    $package[] = new MyDTO();
    $package[] = new YourDTO();
    $package[] = new ThemDTO();
}

$container = new TransferContainer();
$container->put($package);

$transfer = $container->pack();
$container->clear();

// receiver side
$map = [
    YourDTO::class => OtherDTO::class
];
foreach (TransferContainer::unpack($transfer, $map) as $item) {
    // $item is MyDTO/OtherDTO/ThemDTO object
}