1 | <?php |
||
54 | class Mf4PhpMessageBus extends SimpleMessageBus implements MessageListener |
||
|
|||
55 | { |
||
56 | private $dispatcher; |
||
57 | private $queue; |
||
58 | private $objectMessageFactories = []; |
||
59 | private $defaultObjectMessageFactory; |
||
60 | |||
61 | /** |
||
62 | * @param Mf4PhpMessageBusBuilder $builder |
||
63 | */ |
||
64 | public function __construct(Mf4PhpMessageBusBuilder $builder) |
||
72 | |||
73 | /** |
||
74 | * @param MessageDispatcher $dispatcher the default value is due to PHP restrictions |
||
75 | * @return Mf4PhpMessageBusBuilder |
||
76 | * @throws NullPointerException if $dispatcher is null |
||
77 | */ |
||
78 | public static function builder(MessageDispatcher $dispatcher = null) |
||
82 | |||
83 | /** |
||
84 | * Only full matching class names are used, you should not register |
||
85 | * a factory for an abstract message class/interface! |
||
86 | * |
||
87 | * If there is no registered factory for a particular message class, |
||
88 | * DefaultObjectMessageFactory will be used. |
||
89 | * |
||
90 | * @param ObjectMessageFactory $factory |
||
91 | * @param $messageClass |
||
92 | */ |
||
93 | public function registerObjectMessageFactory(ObjectMessageFactory $factory, $messageClass) |
||
97 | |||
98 | /** |
||
99 | * Forward incoming message to handlers. |
||
100 | * |
||
101 | * @param Mf4phpMessage $message |
||
102 | * @throws InvalidArgumentException |
||
103 | */ |
||
104 | public function onMessage(Mf4phpMessage $message) |
||
113 | |||
114 | /** |
||
115 | * Finds the appropriate message factory for the given message. |
||
116 | * |
||
117 | * @param $message |
||
118 | * @return ObjectMessageFactory |
||
119 | */ |
||
120 | protected function findObjectMessageFactory($message) |
||
130 | |||
131 | /** |
||
132 | * Send the message to the message queue. |
||
133 | * |
||
134 | * @param $message |
||
135 | * @param MessageCallback $callback |
||
136 | */ |
||
137 | protected function dispatch($message, MessageCallback $callback) |
||
146 | } |
||
147 |