-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMessageFactory.php
More file actions
34 lines (26 loc) · 908 Bytes
/
MessageFactory.php
File metadata and controls
34 lines (26 loc) · 908 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
declare(strict_types=1);
namespace RabbitEvents\Foundation;
use RabbitEvents\Foundation\Amqp\AmqpMessageFactory;
use RabbitEvents\Foundation\Contracts\Payload;
use RabbitEvents\Foundation\Contracts\TransportMessage;
use RabbitEvents\Foundation\Contracts\TransportMessageFactory;
class MessageFactory
{
private static ?TransportMessageFactory $factory = null;
public static function make(string $event, Payload $payload, array $properties = []): TransportMessage
{
return self::getFactory()->make($event, $payload, $properties);
}
public static function setFactory(TransportMessageFactory $factory): void
{
self::$factory = $factory;
}
private static function getFactory(): TransportMessageFactory
{
if (self::$factory === null) {
self::$factory = new AmqpMessageFactory();
}
return self::$factory;
}
}