Version 1.0.0
This commit is contained in:
26
src/Service/Serializer.php
Normal file
26
src/Service/Serializer.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<?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 $data): AMQPMessage
|
||||
{
|
||||
if ($data instanceof JsonSerializable) {
|
||||
return new AMQPMessage(
|
||||
json_encode($data->jsonSerialize())
|
||||
);
|
||||
}
|
||||
|
||||
throw new InvalidArgumentException(
|
||||
'Data should be an instance of BroadcastEvent'
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user