123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- <?php
- namespace AliyunMNS\Model;
- use AliyunMNS\Constants;
- use AliyunMNS\Traits\MessagePropertiesForReceive;
- class Message
- {
- use MessagePropertiesForReceive;
- public function __construct($messageId, $messageBodyMD5, $messageBody, $enqueueTime, $nextVisibleTime, $firstDequeueTime, $dequeueCount, $priority, $receiptHandle)
- {
- $this->messageId = $messageId;
- $this->messageBodyMD5 = $messageBodyMD5;
- $this->messageBody = $messageBody;
- $this->enqueueTime = $enqueueTime;
- $this->nextVisibleTime = $nextVisibleTime;
- $this->firstDequeueTime = $firstDequeueTime;
- $this->dequeueCount = $dequeueCount;
- $this->priority = $priority;
- $this->receiptHandle = $receiptHandle;
- }
- static public function fromXML(\XMLReader $xmlReader, $base64)
- {
- $messageId = NULL;
- $messageBodyMD5 = NULL;
- $messageBody = NULL;
- $enqueueTime = NULL;
- $nextVisibleTime = NULL;
- $firstDequeueTime = NULL;
- $dequeueCount = NULL;
- $priority = NULL;
- $receiptHandle = NULL;
- while ($xmlReader->read())
- {
- switch ($xmlReader->nodeType)
- {
- case \XMLReader::ELEMENT:
- switch ($xmlReader->name) {
- case Constants::MESSAGE_ID:
- $xmlReader->read();
- if ($xmlReader->nodeType == \XMLReader::TEXT)
- {
- $messageId = $xmlReader->value;
- }
- break;
- case Constants::MESSAGE_BODY_MD5:
- $xmlReader->read();
- if ($xmlReader->nodeType == \XMLReader::TEXT)
- {
- $messageBodyMD5 = $xmlReader->value;
- }
- break;
- case Constants::MESSAGE_BODY:
- $xmlReader->read();
- if ($xmlReader->nodeType == \XMLReader::TEXT)
- {
- if ($base64 == TRUE) {
- $messageBody = base64_decode($xmlReader->value);
- } else {
- $messageBody = $xmlReader->value;
- }
- }
- break;
- case Constants::ENQUEUE_TIME:
- $xmlReader->read();
- if ($xmlReader->nodeType == \XMLReader::TEXT)
- {
- $enqueueTime = $xmlReader->value;
- }
- break;
- case Constants::NEXT_VISIBLE_TIME:
- $xmlReader->read();
- if ($xmlReader->nodeType == \XMLReader::TEXT)
- {
- $nextVisibleTime = $xmlReader->value;
- }
- break;
- case Constants::FIRST_DEQUEUE_TIME:
- $xmlReader->read();
- if ($xmlReader->nodeType == \XMLReader::TEXT)
- {
- $firstDequeueTime = $xmlReader->value;
- }
- break;
- case Constants::DEQUEUE_COUNT:
- $xmlReader->read();
- if ($xmlReader->nodeType == \XMLReader::TEXT)
- {
- $dequeueCount = $xmlReader->value;
- }
- break;
- case Constants::PRIORITY:
- $xmlReader->read();
- if ($xmlReader->nodeType == \XMLReader::TEXT)
- {
- $priority = $xmlReader->value;
- }
- break;
- case Constants::RECEIPT_HANDLE:
- $xmlReader->read();
- if ($xmlReader->nodeType == \XMLReader::TEXT)
- {
- $receiptHandle = $xmlReader->value;
- }
- break;
- }
- break;
- case \XMLReader::END_ELEMENT:
- if ($xmlReader->name == 'Message')
- {
- $message = new Message(
- $messageId,
- $messageBodyMD5,
- $messageBody,
- $enqueueTime,
- $nextVisibleTime,
- $firstDequeueTime,
- $dequeueCount,
- $priority,
- $receiptHandle);
- return $message;
- }
- break;
- }
- }
- $message = new Message(
- $messageId,
- $messageBodyMD5,
- $messageBody,
- $enqueueTime,
- $nextVisibleTime,
- $firstDequeueTime,
- $dequeueCount,
- $priority,
- $receiptHandle);
- return $message;
- }
- }
- ?>
|