config = $config; } /** * Read values from queue config and make them available via publisher config * * @param PublisherConfigCompositeReader $subject * @param array $result * @param string|null $scope * @return array * * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function afterRead(PublisherConfigCompositeReader $subject, $result, $scope = null) { return array_merge($this->getPublisherConfigDataFromQueueConfig(), $result); } /** * Get data from queue config in format compatible with publisher config data internal structure * * @return array */ private function getPublisherConfigDataFromQueueConfig() { $result = []; foreach ($this->config->getBinds() as $bindingConfig) { $topic = $bindingConfig['topic']; $result[$topic] = [ 'topic' => $topic, 'connection' => [ 'name' => $this->config->getConnectionByTopic($topic), 'exchange' => $bindingConfig['exchange'], 'disabled' => false ], 'disabled' => false ]; } return $result; } }