/**
  * @param QueueTemplate $queueTemplate
  */
 public function declareQueue(QueueTemplate $queueTemplate)
 {
     // Create or reuse existing channel
     $channel = $queueTemplate->channel();
     // Declare queue
     $channel->queue_declare($queueTemplate->getQueueName(), $queueTemplate->isPassive(), true, $queueTemplate->isExclusive(), false);
 }
 /**
  * @return void
  */
 public function listen()
 {
     // Declare template
     $queueTemplate = $this->queueTemplate;
     // Create or reuse existing channel
     $channel = $this->channel();
     /**
      * indicate interest in consuming messages from a particular queue. When they do
      * so, we say that they register a consumer or, simply put, subscribe to a queue.
      * Each consumer (subscription) has an identifier called a consumer tag
      */
     $channel->basic_consume($queueTemplate->getQueueName(), $this->consumerName, $this->noLocal, !$queueTemplate->doAckManually(), $this->queueTemplate->isExclusive(), $this->noWaiting, $this);
 }