PHP 5.6.0 released

The AMQPQueue class

Introduction

Represents an AMQP queue.

Class synopsis

AMQPQueue {
/* Methods */
public bool ack ( int $delivery_tag [, int $flags = NULL ] )
public bool bind ( string $exchange_name , string $routing_key )
public bool cancel ([ string $consumer_tag = "" ] )
__construct ( AMQPConnection $amqp_connection [, string $queue_name = "" ] )
public array consume ([ array $options = array() ] )
public int declare ([ string $queue_name = "" [, int $flags = AMQP_AUTODELETE ]] )
public bool delete ( string $queue_name )
public array get ([ int $flags = AMQP_NOACK ] )
public bool purge ( string $queue_name )
public bool unbind ( string $exchange_name , string $routing_key )
}

Table of Contents

add a note add a note

User Contributed Notes 2 notes

up
0
ebuildy at gmail dot com
2 years ago
AMQPExchange constructor need a Channel not a Connection object.
up
0
bolo at nospam dot autistici dot org
2 years ago
Function that perform a php publisher daemon.  [And function to interface with Rabbit server.]

<?php

//First initialise the connection to Rabbit server

function amqp_connection() {

   
$connection = new AMQPConnection();
   
$connection->setLogin('guest');
   
$connection->setPassword('guest');
   
$connection->connect();

    if (!
$connection->isConnected()) {
         echo
"Cannot connect to the broker";
    }
    return
$connection;
}

//This is the daemon, it should be more performant because the sleep(1) run the publisher every 1 second. Rabbit is more faster.

function receiver($exchange, $rk, $queuename) {
   
$connection=amqp_connection();

   
$queue = new AMQPQueue($connection);
   
$queue->declare($queuename);
   
$queue->bind($exchange, $rk);
   
    while(
true){
       
$msg=$queue->get();
        if (
$msg['count']>-1){
            echo
"\n--------\n";
           
print_r($msg['msg']);
            echo
"\n--------\n";
        }
   
sleep(1);   
    }
    if (!
$connection->disconnect()) {
        throw new
Exception('Could not disconnect');
    }
}

//Next perform message delivery, the FANOUT type is for loadbalacing mode
//It perform the delivery of $text message to every Rabbit servers running in your system.
//Refer to the php manual (http://www.php.net/manual/en/amqp.constants.php) for others type.

function sender($text, $rk, $exchange){
      
$connection=amqp_connection();

      
$ex = new AMQPExchange($connection);
      
$ex->declare($exchange, AMQP_EX_TYPE_FANOUT, AMQP_DURABLE);

      
$msg=$ex->publish($text, $rk);
       if (!
$msg){echo "error";}echo 'Sended '.$msg.'<br>';

       if (!
$connection->disconnect()) {
               throw new
Exception('Could not disconnect');
       } else {
               echo
"disconnected";
       }
}
?>

P.S. run the daemon with ~$ php /pathto/php.ini functioncaller.php
To Top