getQueues()[0]['queueName']; } /** * Queues configuration for `Connection` class. */ public function getQueuesConfiguration(): array { $queues = []; foreach ($this->getQueues() as $options) { $queues[$options['queueName']] = ['arguments' => $this->queueOptions]; } return $queues; } /** * Returns all queues that are configured by this configuration. */ public function getQueues(): array { if (!$this->getPriorities()) { return [0 => ['queueName' => $this->queue, 'priorityName' => null]]; } $queues = []; foreach ($this->getPriorities() as $priority => $priorityName) { $queues[$priority] = ['queueName' => "{$this->queue}.{$priorityName}", 'priorityName' => $priorityName]; } return $queues; } public function hasPriorityQueuesWithExchange(): bool { return !empty($this->priorityOptions['count']) && !empty($this->priorityOptions['exchange']); } private function getPriorities(): ?array { if (!$this->hasPriorityQueuesWithExchange()) { return null; } $count = $this->priorityOptions['count']; $priorityNames = []; foreach (range($count - 1, 0) as $priority) { $priorityNames[$priority] = "priority.{$priority}"; } return $priorityNames; } }