@@ -179,18 +179,18 @@ public function publish(string $body, array $headers = [], int $delay = 0, strin
179179
180180 $ flags = $ this ->queueConfiguration ['flags ' ] ?? AMQP_NOPARAM ;
181181 $ attributes = $ this ->getAttributes ($ headers );
182- $ routingKey = $ this ->getRoutingKey ( $ routingKey );
182+ $ routingKey = $ routingKey ?? $ this ->getExchangeRoutinKey ( );
183183
184184 $ this ->exchange ()->publish ($ body , $ routingKey , $ flags , $ attributes );
185185 }
186186
187187 /**
188188 * @throws \AMQPException
189189 */
190- private function publishWithDelay (string $ body , array $ headers , int $ delay , ?string $ routingKey )
190+ private function publishWithDelay (string $ body , array $ headers , int $ delay , ?string $ exchangeRoutingKey )
191191 {
192192 if ($ this ->shouldSetup ()) {
193- $ this ->setupDelay ($ delay , $ routingKey );
193+ $ this ->setupDelay ($ delay , $ exchangeRoutingKey );
194194 }
195195
196196 $ routingKey = $ this ->getRoutingKeyForDelay ($ delay );
@@ -200,7 +200,7 @@ private function publishWithDelay(string $body, array $headers, int $delay, ?str
200200 $ this ->getDelayExchange ()->publish ($ body , $ routingKey , $ flags , $ attributes );
201201 }
202202
203- private function setupDelay (int $ delay , ?string $ routingKey )
203+ private function setupDelay (int $ delay , ?string $ exchangeRoutingKey )
204204 {
205205 if (!$ this ->channel ()->isConnected ()) {
206206 $ this ->clear ();
@@ -209,7 +209,7 @@ private function setupDelay(int $delay, ?string $routingKey)
209209 $ exchange = $ this ->getDelayExchange ();
210210 $ exchange ->declareExchange ();
211211
212- $ queue = $ this ->createDelayQueue ($ delay , $ routingKey );
212+ $ queue = $ this ->createDelayQueue ($ delay , $ exchangeRoutingKey );
213213 $ queue ->declareQueue ();
214214 $ queue ->bind ($ exchange ->getName (), $ this ->getRoutingKeyForDelay ($ delay ));
215215 }
@@ -234,7 +234,7 @@ private function getDelayExchange(): \AMQPExchange
234234 * which is the original exchange, resulting on it being put back into
235235 * the original queue.
236236 */
237- private function createDelayQueue (int $ delay , ?string $ routingKey )
237+ private function createDelayQueue (int $ delay , ?string $ exchangeRoutingKey )
238238 {
239239 $ delayConfiguration = $ this ->connectionConfiguration ['delay ' ];
240240
@@ -245,10 +245,10 @@ private function createDelayQueue(int $delay, ?string $routingKey)
245245 'x-dead-letter-exchange ' => $ this ->exchange ()->getName (),
246246 ]);
247247
248- $ routingKey = $ this ->getRoutingKey ( $ routingKey );
249- if ($ routingKey ) {
248+ $ exchangeRoutingKey = $ exchangeRoutingKey ?? $ this ->getExchangeRoutinKey ( );
249+ if (null !== $ exchangeRoutingKey ) {
250250 // after being released from to DLX, this routing key will be used
251- $ queue ->setArgument ('x-dead-letter-routing-key ' , $ routingKey );
251+ $ queue ->setArgument ('x-dead-letter-routing-key ' , $ exchangeRoutingKey );
252252 }
253253
254254 return $ queue ;
@@ -391,8 +391,14 @@ private function getAttributes(array $headers): array
391391 return array_merge_recursive ($ this ->queueConfiguration ['attributes ' ] ?? [], ['headers ' => $ headers ]);
392392 }
393393
394- private function getRoutingKey (? string $ expected = '' ): ?string
394+ private function getExchangeRoutinKey ( ): ?string
395395 {
396- return $ expected ?: ($ this ->queueConfiguration ['routing_key ' ] ?? null );
396+ $ routingKey = $ this ->exchangeConfiguration ['routing_key ' ] ?? null ;
397+ if (null === $ routingKey && isset ($ this ->queueConfiguration ['routing_key ' ])) {
398+ $ routingKey = $ this ->queueConfiguration ['routing_key ' ];
399+ @trigger_error ('Setting routing key from queue configuration is deprecated. Use exchange configuration instead. ' , E_USER_DEPRECATED );
400+ }
401+
402+ return $ routingKey ;
397403 }
398404}
0 commit comments