PHP-AMQPバージョン2

API RabbitMQ AMQP for PHPに関する新しいアイデアで 、PHP-AMQP APIのスケッチが公開されました



以前に発行されたアイデアの続きで、最初のバージョンよりも多くのOOPである実装を紹介します。



拡張コードはここにあります。プロジェクトとsvnの説明は古いバージョン(1.0)は英語に翻訳されています



バージョン2.0の簡単な説明:



クラスAMQPConnection-チャネル接続を含む論理接続を開きます。



コンストラクター:


APMQConection :: APMQConection([配列パラメーター])



パラメーター(すべてオプション):



例外は、論理的または物理的な接続がないことです。



例:

$cnn = new APMQConection(array ('port'=>5673, 'login' => 'sector1', 'vhost'=>'v1' ) );







AMQPExchange Exchangeクラス



コンストラクター:


名前が指定されている場合は交換の作成、そうでない場合はクラスの初期化

AMQPExchange :: AMQPExchange(APMQConection cnn、ストリング[名前])

name-取引所の名前



例:



$cnn = new APMQConection(array ('port'=>5673, 'login' => 'sector1' ));

$exchange = new AMQPExchange($cnn, 'ex_name');









Exchange広告:


proto bool AMQPEexchange :: declare([string name]、[string type = direct]、[bit params]);



name-取引所の名前

タイプ-交換タイプ、許可されるタイプ:直接、トピック、ファンアウト

params-パラメーター:



操作の結果を返します



例:

$cnn = new APMQConection(array ('port'=>5673, 'login' => 'sector1' ));

$exchange = new AMQPExchange($cnn);

$exchange->declare('ex_name', 'topic',AMQP_DURABLE );









交換を削除:


proto bool AMQPExchange :: delete([string name]、[bit params]);



name-取引所の名前

params-パラメーター:



操作の結果を返します



例:

$cnn = new APMQConection(array ('port'=>5673, 'login' => 'sector1' ));

$exchange = new AMQPExchange($cnn, 'ex_name');

$res = $exchange->delete();

// - , .









交換のキューイング:


proto bool AMQPExchange :: bind(string queueName、string routingKey);



queueName-キュー名

key-ルーティングキー、ルートキー、文字列



操作の結果を返します



例:

$msg = " , ...";

$cnn = new APMQConection(array ('port'=>5673, 'login' => 'sector1' ));

$exchange = new AMQPExchange($cnn, 'ex_name');

$exchange->bind('mylogin','spb.news')

$res = $exchange->publish( $msg, 'spb.news');









出版物:




proto bool AMQPExchange :: publish(string msg、[string key]、bit [parms]);



交換トピックまたはダイレクトのタイプのキーキーを使用したメッセージの発行



msg-メッセージ、文字列

key-ルーティングキー、ルートキー、文字列

params-パラメーター:





操作の結果を返します



例:

$msg = " ...";

$cnn = new APMQConection(array ('port'=>5673, 'login' => 'sector1' ));

$exchange = new AMQPExchange($cnn, 'ex_name');

$res = $exchange->publish( $msg, 'spb.news');









AMQPQueueキュークラス



コンストラクター-クラスの初期化


AMQPQueue :: AMQPQueue(AMQPConnection cnn、文字列[名前])



name-キュー名



キューアナウンスメント


proto int AMQPQueue :: declare(string [name]、bit [params])



name-キュー名

params-パラメーター:



キューが既に存在する場合、キュー内の要素の数を返します。



例: $cnn = new APMQConection(array ('port'=>5673, 'login' => 'sector1' ));

$queue = new AMQPQueue($cnn,'chat_12');

$queue->declare('chat_12', AMQP_AUTEDELETE | AMQP_DURABLE);





$cnn = new APMQConection(array ('port'=>5673, 'login' => 'sector1' ));

$queue = new AMQPQueue($cnn,'chat_12');

$queue->declare('chat_12', AMQP_AUTEDELETE | AMQP_DURABLE);









キューを削除


proto bool AMQPQueue ::削除(文字列[名前]、ビット[パラメーター])



name-キュー名

params-パラメーター:



操作の結果を返します



例: $queue = new AMQPQueue(new APMQConection(),'chat_12');

$queue->delete();




$queue = new AMQPQueue(new APMQConection(),'chat_12');

$queue->delete();








キューを取引所にリンクする


proto bool AMQPQueue :: bind(string exchangeName、string routingKey);



name-取引所の名前

routingkey-ルートキー



例:

// 'mylogin' 'ex_estate' '*.spb'

$queue = new AMQPQueue(APMQConection(), 'mylogin');

$queue->declare();

$queue->bind('ex_estate','*.spb');









購読する


プロトタイプ配列AMQPQueue :: consumer(int n);

キューからnメッセージの配列を取得します(他のすべては破棄されます)

n-受信したメッセージの数

params-パラメーター:





注意!

受信したメッセージの数はキュー内のメッセージの総数を超えることはできません。そうしないと、APIはブローカーからのすべてのメッセージを受信するまで待機します。

現在キューにあるメッセージの数よりも少ないメッセージ数を指定すると、選択されていないすべてのメッセージが選択済みとしてマークされます。つまり、AMQP_NOACKフラグが設定されていない場合、キューから再読み取りするとメッセージは失われます。



例: $i=0;

$queue = new AMQPQueue(APMQConection());

$n = $queue->declare('mylogin');

$queueMessages = $queue->consume( $n );

foreach($queueMessages as $item){

$i++;

echo "$i.$item";

}





$i=0;

$queue = new AMQPQueue(APMQConection());

$n = $queue->declare('mylogin');

$queueMessages = $queue->consume( $n );

foreach($queueMessages as $item){

$i++;

echo "$i.$item";

}









登録解除


proto bool AMQPQueue :: unbind(string exchangeName、string routingKey);

routingKeyルートキーのcheating exchangeNameから現在のキューをデタッチします



name-取引所の名前

routingkey-ルートキー



操作の結果を返します



キューのリセット


proto bool AMQPQueue ::パージ(文字列[名前])

キュー内のすべてのメッセージは破棄され、キュー自体は残ります。



name-キュー名

操作の結果を返します



例: $queue = new AMQPQueue(new APMQConection());

$queue->purge('chat_12');





$queue = new AMQPQueue(new APMQConection());

$queue->purge('chat_12');









キュー項目を取得


プロトタイプ配列AMQPQueue :: get(string [name]、bit [params])



name-キュー名

params-パラメーター:





連想配列を返します。




All Articles