Skip to content

Instantly share code, notes, and snippets.

@matjack1
Created May 8, 2014 08:16
Show Gist options
  • Save matjack1/07c2d5014122865c56a6 to your computer and use it in GitHub Desktop.
Save matjack1/07c2d5014122865c56a6 to your computer and use it in GitHub Desktop.
AmazonSQSHelper.php
<?php
Yii::import( 'application.vendors.*' );
require_once( 'aws/sdk.class.php' );
class AmazonSQSHelper {
private $sqs = null;
private $queue_url = '';
public function __construct( $_queue_arn ) {
if ( defined( 'TESTING' ) ) {
$_queue_arn .= '-test';
}
$this->sqs = new AmazonSQS( array(
'key' => Yii::app()->params['sqs_key'],
'secret' => Yii::app()->params['sqs_secret'],
) );
$this->getQueueUrl( $_queue_arn );
}
private function getQueueUrl( $_queue_arn ) {
$this->queue_url = $this->sqs->get_queue_url( $_queue_arn )->body->GetQueueUrlResult->QueueUrl;
}
public function getQueueSize() {
return $this->sqs->get_queue_size( $this->queue_url );
}
public function sendMessage( $_message_body ) {
return $this->sqs->send_message( $this->queue_url, $_message_body );
}
public function getMessage() {
$message = $this->sqs->receive_message( $this->queue_url, array( 'MaxNumberOfMessages' => 1 ) );
$receipt_handle = (string)$message->body->ReceiveMessageResult->Message->ReceiptHandle;
$this->sqs->delete_message( $this->queue_url, $receipt_handle );
$message_body = (string)$message->body->ReceiveMessageResult->Message->Body;
return $message_body;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment