RabbitMQ AMQP for PHPの新しいAPIのアイデア

RabbitMQ用の以前に開発されたPHP API 「AMQP Now for PHP」を最近公開しました



議論の中で、PHP APIをよりオブジェクトモデルにすることが提案されました。

AMQPプロトコルで提案されているモデルにより近い。



コードは少し複雑になりますが、オブジェクトモデルはより美しくなり、



コーディングに進む前に、議論のために新しいAPIを紹介します



クラスAMQPConnection


チャネル接続を含む論理接続を開きます。

$ cnn =新しいAPMQConection([ホスト= localhost]、[ポート= 5672]、[ログイン=ゲスト]、[psw =ゲスト]、[vhost = /]);

$ cnn-> getResult(); -接続の真/偽の結果



AMQPExchange Exchange クラス


$ exchange = new AMQPExchange($ cnn、[name]、[parms])-名前が指定されている場合は交換を作成し、そうでない場合はクラスの初期化

$ res = $ exchange-> declare([name])-交換を宣言する

$ res = $ exchange-> delete([name])-名前が指定されていない場合、交換を削除します-現在の名前で削除されます

$ res = $ exchange-> publish(msg、routing_key、[parms])

$ res = $ exchange-> getResult(); -最後の操作の真/偽の結果



$ exchange = new AMQPExchange($ cnn、name、[parms])は同等です

$ exchange =新しいAMQPExchange($ cnn);

$ res = $ exchange-> declare();



AMQPQueueキュークラス


$ queue = new AMQPQueue(cnn、[name]、[params]); -名前が指定されている場合はキューの作成、そうでない場合はクラスの初期化

$ res = $ queue-> delete([name])-キューを削除し、操作の結果を返します

$ res = $ queue-> declaere([name]、[params])-キューの宣言、操作の結果を返します。

$ res = $ queue-> purge([name])-キューのすべての要素を削除し、操作の結果を返します

$ res = $ queue-> bind(exchange、routing_key、[parms]); -キューと交換の通信

$ queueItem = $ queue-> getItem(); -キューからアイテムを1つ取得する

$ arrayOfQueueItems = $ queue-> consumer([n])-nが指定されていない場合、キューからnメッセージの配列を取得します(他はすべて破棄されます)-すべてのメッセージが選択されます

$ queue-> getResult(); -true / false最後の操作の結果。主にコンストラクターで操作の検証を使用することを目的としています



$ queue = new AMQPQueue(cnn、name、[params]); と同等:

$ queue =新しいAMQPQueue(cnn)

$ queue-> declaere(name、[params])



オブジェクトモデルはAMQP標準に完全には準拠していませんが、1つのモノリシッククラスの代わりに既に4つあります。 実際には、機能は変更されておらず、キューと交換を削除するメソッドのみが追加されています。



All Articles