/** * @dataProvider propertiesDataProvider */ public function testSerializeProperties(array $expected, array $properties) { /** @var AMQPReader $reader */ $reader = new AMQPReader(null); /** @var AMQPMessage $message */ $message = new AMQPMessage('', $properties); /** @var string $encodedData */ $encodedData = $message->serialize_properties(); // Bypasses the network part and injects the encoded data into the reader $reader->reuse($encodedData); // Injects the reader into the message $message->load_properties($reader); $this->assertEquals($expected, $message->get_properties()); }
/** * Callback executed when a message is received. Dumps the message body, delivery_info and properties. * * @param AMQPMessage $msg The received message. * * @return void */ public function execute(AMQPMessage $msg) { echo str_repeat('-', 60) . PHP_EOL; echo '[RECV ' . date('c') . ']' . PHP_EOL . '<content>' . PHP_EOL . $msg->body . PHP_EOL . '</content>' . PHP_EOL . PHP_EOL; echo "*" . ' INFO ' . PHP_EOL; foreach ($msg->{'delivery_info'} as $key => $value) { if (is_scalar($value)) { echo "** " . $key . ' = ' . $value . PHP_EOL; } } echo "*" . ' PROPERTIES ' . PHP_EOL; foreach ($msg->get_properties() as $property => $value) { if (is_scalar($value)) { echo "** " . $property . ' = ' . $value . PHP_EOL; } } }
/** * Overridden to inject the queue name into the AMQP message * @param BaseAMQPMessage $msg */ public function processMessage(BaseAMQPMessage $msg) { $newMsg = new AMQPMessage($msg->body, $msg->get_properties()); $newMsg->delivery_info = $msg->delivery_info; $newMsg->body_size = $msg->body_size; $newMsg->is_truncated = $msg->is_truncated; $newMsg->setQueueName($this->queueName); $processFlag = call_user_func($this->callback, $newMsg); $this->handleProcessMessage($newMsg, $processFlag); }