class RabbitMqChannel
{
public function publish(
AMQPMessage $message,
string $exchangeName,
string $routingKey
)
{
$this->channel->exchange_declare($exchangeName, 'topic', false, true, false);
$this->channel->basic_publish($message, $exchangeName, $routingKey);
}
public function bindQueueToExecutor(string $queueName, callable $executor)
{
$this->channel->queue_declare($queueName, false, true, false, false);
$this->channel->basic_consume($queueName, '', false, false, false, false, $executor);
}
public function listen()
{
while(count($this->channel->callbacks)) {
$this->channel->wait();
}
}
}
Low level read