xaerobiont / transfer-container
3.0.0
2022-12-11 14:54 UTC
Requires
- php: ^8.2
- ext-mbstring: *
- ext-zlib: *
Requires (Dev)
- phpunit/phpunit: ^9.5
- vimeo/psalm: ^5
README
PHP容器,用于在服务间传输DTO
目标
- 允许将不同的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 }