/** * {@inheritDoc} */ public function declareExchange(ExchangeDefinition $exchange) { try { $this->getChannel()->exchange_declare($exchange->getName(), $exchange->getType(), false, $exchange->isDurable(), $exchange->isAutoDeleted(), $exchange->isInternal()); } catch (\Exception $e) { throw new DriverException('Exchange declare error', $e); } }
/** * {@inheritDoc} */ public function declareExchange(ExchangeDefinition $exchange) { static $typeMap = [ExchangeType::DIRECT => AMQP_EX_TYPE_DIRECT, ExchangeType::TOPIC => AMQP_EX_TYPE_TOPIC, ExchangeType::FANOUT => AMQP_EX_TYPE_FANOUT, ExchangeType::HEADERS => AMQP_EX_TYPE_HEADERS]; $exchangeObject = $this->getExchange($exchange->getName()); $exchangeObject->setType($typeMap[$exchange->getType()]); $flags = AMQP_DURABLE * $exchange->isDurable() | AMQP_AUTODELETE * $exchange->isAutoDeleted() | AMQP_INTERNAL * $exchange->isInternal(); $exchangeObject->setFlags($flags); $exchangeObject->declareExchange(); }