PHP container for transferring DTO between services
- Allows to transfer different DTOs into single package
- Provides mapping mechanism. I.e. when sender and receiver has different DTO namespace or even classes
- Compress data packs
- Very simple, lightweight and vendor-independent
{
"require": {
"xaerobiont/transfer-container": "^2"
}
}
For more detailed usage examples see /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
}