Files
LaravelRabbitMQ/src/Service/Serializer.php

27 lines
653 B
PHP

<?php
declare(strict_types=1);
namespace Diffhead\PHP\LaravelRabbitMQ\Service;
use Diffhead\PHP\LaravelRabbitMQ\Interface\Serializer as SerializerInterface;
use InvalidArgumentException;
use JsonSerializable;
use PhpAmqpLib\Message\AMQPMessage;
class Serializer implements SerializerInterface
{
public function serialize(object $event): AMQPMessage
{
if ($event instanceof JsonSerializable) {
return new AMQPMessage(
json_encode($event->jsonSerialize())
);
}
throw new InvalidArgumentException(
'Event should be an instance of JsonSerializable'
);
}
}