public function testAlternateExchangeIsPartOfArguments() { $spec = new ExchangeSpecification(); $spec->setAlternateExchange('foobar'); $args = $spec->getArguments(); $this->assertArrayHasKey('alternate-exchange', $args); $this->assertEquals('foobar', $args['alternate-exchange']); $spec->setAlternateExchange(null); $args = $spec->getArguments(); $this->assertArrayNotHasKey('alternate-exchange', $args); }
/** * {@inheritdoc} */ public function dispatch(RequestInterface $request, ResponseInterface $response = null) { parent::dispatch($request, $response); /* @var $response \Zend\Console\Response */ $config = $this->getServiceLocator()->get('Config'); $moduleConfig = $config['humus_amqp_module']; $exchanges = array(); foreach ($moduleConfig['exchanges'] as $name => $options) { $spec = new ExchangeSpecification($options); $exchanges[$spec->getType()][] = $name; } if (empty($exchanges)) { $this->getConsole()->writeLine('No exchanges found', ColorInterface::RED); $response->setErrorLevel(1); return; } $this->getConsole()->writeLine('List of all exchanges', ColorInterface::GREEN); foreach ($exchanges as $type => $values) { $this->getConsole()->writeLine('Exchange-Type: ' . $type, ColorInterface::GREEN); foreach (array_unique($values) as $value) { $this->getConsole()->writeLine($value); } } }
/** * @param ExchangeSpecification $specification * @param AMQPChannel $channel * @param bool $autoDeclare * @return AMQPExchange */ public function create(ExchangeSpecification $specification, AMQPChannel $channel, $autoDeclare = true) { $exchange = new AMQPExchange($channel); $exchange->setArguments($specification->getArguments()); $exchange->setName($specification->getName()); $exchange->setFlags($specification->getFlags()); $exchange->setType($specification->getType()); if ($autoDeclare) { $exchange->declareExchange(); // rabbitmq extension: exchange to exchange bindings foreach ($specification->getExchangeBindings() as $exchangeName => $routingKeys) { foreach ($routingKeys as $routingKey) { $exchange->bind($exchangeName, $routingKey, $specification->getFlags()); } } } return $exchange; }