Queue-centric wrapper for Amazon Simple Queue Service
2009.09.02
2006-2009 Foleeo, Inc., and contributors.
| Simplified BSD License | http://opensource.org/licenses/bsd-license.php |
| CloudFusion | http://getcloudfusion.com |
| Amazon SQS | http://aws.amazon.com/sqs |
Specify the default error message.
Container for all Amazon SQS-related methods. Inherits additional methods from AmazonSQS.
AmazonSQS
The queue URL to use for every request.
public function __construct( $queue = null, $key = null, $secret_key = null )
The constructor
public
| queue | string (Optional) The NAME for the queue to revolve around. Set as null if you plan to create a new queue, as it will be auto-set. |
| key | string (Optional) Your Amazon API Key. If blank, it will look for the AWS_KEY constant. |
| secret_key | string (Optional) Your Amazon API Secret Key. If blank, it will look for the AWS_SECRET_KEY constant. |
boolean false if no valid values are set, otherwise true.
<?php
// Dependencies
require_once 'cloudfusion.class.php';
// Send a message to the queue
$sqs = new AmazonSQSQueue('warpshare-unit-test');
$response = $sqs->send_message('This is my message.');
// Success
var_dump($response->isOK());
/** [Expected output]
bool(true)
*/
?> <?php
// Dependencies
require_once 'cloudfusion.class.php';
// Receive a message
$sqs = new AmazonSQSQueue('warpshare-unit-test');
$response = $sqs->receive_message();
// Store the message receipt in a temp file so that the delete message can grab it later.
// This is The Wrong Way To Do It™
file_put_contents('receipt_handle_queue.cache', (string) $response->body->ReceiveMessageResult->Message->ReceiptHandle); // Pass data to delete_message.
// Success?
var_dump($response->isOK());
/** [Expected output]
bool(true)
*/
?> <?php
// Dependencies
require_once 'cloudfusion.class.php';
// Delete a message we've read
$sqs = new AmazonSQSQueue('warpshare-unit-test');
$response = $sqs->delete_message(
file_get_contents('receipt_handle_queue.cache') // See receive_message() example for why we're doing this.
);
// Success?
var_dump($response->isOK());
/** [Expected output]
bool(true)
*/
?>
public function create_queue( $queue_name, $returnCurlHandle = null )
Identical to AmazonSQS::create_queue(). The queue URL created from this method will replace the queue URL already being used with this class.
New queue URL will NOT automatically apply when using MultiCurl for parallel requests.
public
| queue_name | See AmazonSQS::create_queue(). |
| returnCurlHandle | See AmazonSQS::create_queue(). |
ResponseCore object
<?php
// Dependencies
require_once 'cloudfusion.class.php';
// Create a queue
$sqs = new AmazonSQSQueue();
$response = $sqs->create_queue('warpshare-unit-test');
// Success?
var_dump($response->isOK());
/** [Expected output]
bool(true)
*/
?> <?php
// Dependencies
require_once 'cloudfusion.class.php';
// Create a queue
$sqs = new AmazonSQSQueue();
$sqs->set_locale(SQS_LOCATION_EU);
$response = $sqs->create_queue('warpshare-unit-test');
// Success?
var_dump($response->isOK());
/** [Expected output]
bool(true)
*/
?>
public function delete_queue( $returnCurlHandle = null )
Identical to AmazonSQS::delete_queue(), except that you don’t need to pass in a queue URL.
public
| returnCurlHandle | See AmazonSQS::delete_queue(). |
ResponseCore object
<?php
// Dependencies
require_once 'cloudfusion.class.php';
// Delete a queue
$sqs = new AmazonSQSQueue('warpshare-unit-test');
$response = $sqs->delete_queue();
// Success?
var_dump($response->isOK());
/** [Expected output]
bool(true)
*/
?> <?php
// Dependencies
require_once 'cloudfusion.class.php';
// Delete a queue
$sqs = new AmazonSQSQueue('warpshare-unit-test');
$sqs->set_locale(SQS_LOCATION_EU);
$response = $sqs->delete_queue();
// Success?
var_dump($response->isOK());
/** [Expected output]
bool(true)
*/
?>
public function get_queue_attributes( $attributes = 'All', $returnCurlHandle = null )
Identical to AmazonSQS::get_queue_attributes(), except that you don’t need to pass in a queue URL.
public
| attributes | string | array (Optional) The attribute you want to get. Setting this value to ‘All’ returns all the queue’s attributes. Pass a string for a single attribute, or an indexed array for multiple attributes. Possible values are ‘All’, ‘ApproximateNumberOfMessages’, ‘VisibilityTimeout’, ‘CreatedTimestamp’, ‘LastModifiedTimestamp’, and ‘Policy’. Defaults to ‘All’. |
| returnCurlHandle | See AmazonSQS::get_queue_attributes(). |
ResponseCore object
<?php
// Dependencies
require_once 'cloudfusion.class.php';
// Get queue attributes
$sqs = new AmazonSQSQueue('warpshare-unit-test');
$response = $sqs->get_queue_attributes();
// Success?
var_dump($response->isOK());
/** [Expected output]
bool(true)
*/
?> <?php
// Dependencies
require_once 'cloudfusion.class.php';
// Get queue attributes
$sqs = new AmazonSQSQueue('warpshare-unit-test');
$response = $sqs->get_queue_attributes('All');
// Success?
var_dump($response->isOK());
/** [Expected output]
bool(true)
*/
?> <?php
// Dependencies
require_once 'cloudfusion.class.php';
// Get queue attributes
$sqs = new AmazonSQSQueue('warpshare-unit-test');
$response = $sqs->get_queue_attributes(array(
'ApproximateNumberOfMessages',
'VisibilityTimeout',
'CreatedTimestamp',
'LastModifiedTimestamp',
'Policy'
));
// Success?
var_dump($response->isOK());
/** [Expected output]
bool(true)
*/
?>
public function set_queue_attributes( $opt = null )
Identical to AmazonSQS::set_queue_attributes(), except that you don’t need to pass in a queue URL.
public
| opt | See AmazonSQS::set_queue_attributes(). |
ResponseCore object
<?php
// Dependencies
require_once 'cloudfusion.class.php';
// Change visibility timeout
$sqs = new AmazonSQSQueue('warpshare-unit-test');
$response = $sqs->set_queue_attributes(array(
'VisibilityTimeout' => 7200
));
// Success?
var_dump($response->isOK());
/** [Expected output]
bool(true)
*/
?>
public function send_message( $message, $returnCurlHandle = null )
Identical to AmazonSQS::send_message(), except that you don’t need to pass in a queue URL.
public
| message | See AmazonSQS::send_message(). |
| returnCurlHandle | See AmazonSQS::send_message(). |
ResponseCore object
<?php
// Dependencies
require_once 'cloudfusion.class.php';
// Send a message to the queue
$sqs = new AmazonSQSQueue('warpshare-unit-test');
$response = $sqs->send_message('This is my message.');
// Success
var_dump($response->isOK());
/** [Expected output]
bool(true)
*/
?> <?php
// Dependencies
require_once 'cloudfusion.class.php';
// Send a message to the queue
$sqs = new AmazonSQSQueue('warpshare-unit-test');
$sqs->set_locale(SQS_LOCATION_EU);
$response = $sqs->send_message('This is my message.');
// Success
var_dump($response->isOK());
/** [Expected output]
bool(true)
*/
?>
public function receive_message( $opt = null )
Identical to AmazonSQS::receive_message(), except that you don’t need to pass in a queue URL.
public
| opt | See AmazonSQS::receive_message(). |
ResponseCore object
<?php
// Dependencies
require_once 'cloudfusion.class.php';
// Receive a message
$sqs = new AmazonSQSQueue('warpshare-unit-test');
$response = $sqs->receive_message();
// Store the message receipt in a temp file so that the delete message can grab it later.
// This is The Wrong Way To Do It™
file_put_contents('receipt_handle_queue.cache', (string) $response->body->ReceiveMessageResult->Message->ReceiptHandle); // Pass data to delete_message.
// Success?
var_dump($response->isOK());
/** [Expected output]
bool(true)
*/
?> <?php
// Dependencies
require_once 'cloudfusion.class.php';
// Receive a message, and allow more time to process
$sqs = new AmazonSQSQueue('warpshare-unit-test');
$response = $sqs->receive_message(array(
'VisibilityTimeout' => 7200
));
// Success?
var_dump($response->isOK());
/** [Expected output]
bool(true)
*/
?> <?php
// Dependencies
require_once 'cloudfusion.class.php';
// Receive a single message
$sqs = new AmazonSQSQueue('warpshare-unit-test');
$response = $sqs->receive_message(array(
'MaxNumberOfMessages' => 1
));
// Success?
var_dump($response->isOK());
/** [Expected output]
bool(true)
*/
?> <?php
// Dependencies
require_once 'cloudfusion.class.php';
// Receive a single message
$sqs = new AmazonSQSQueue('warpshare-unit-test');
$response = $sqs->receive_message(array(
'AttributeName' => 'SenderId'
));
// Success?
var_dump($response->isOK());
/** [Expected output]
bool(true)
*/
?> <?php
// Dependencies
require_once 'cloudfusion.class.php';
// Receive a single message
$sqs = new AmazonSQSQueue('warpshare-unit-test');
$response = $sqs->receive_message(array(
'AttributeName' => array(
'SenderId',
'SentTimestamp'
)
));
// Success?
var_dump($response->isOK());
/** [Expected output]
bool(true)
*/
?>
public function delete_message( $receipt_handle, $returnCurlHandle = null )
Identical to AmazonSQS::delete_message(), except that you don’t need to pass in a queue URL.
public
| receipt_handle | See AmazonSQS::delete_message(). |
| returnCurlHandle | See AmazonSQS::delete_message(). |
ResponseCore object
<?php
// Dependencies
require_once 'cloudfusion.class.php';
// Delete a message we've read
$sqs = new AmazonSQSQueue('warpshare-unit-test');
$response = $sqs->delete_message(
file_get_contents('receipt_handle_queue.cache') // See receive_message() example for why we're doing this.
);
// Success?
var_dump($response->isOK());
/** [Expected output]
bool(true)
*/
?>
public function get_queue_size()
Identical to AmazonSQS::get_queue_size(), except that you don’t need to pass in a queue URL.
public
integer The Approximate number of messages in the queue.
<?php
// Dependencies
require_once 'cloudfusion.class.php';
// Get queue size
$sqs = new AmazonSQSQueue('warpshare-unit-test');
$response = $sqs->get_queue_size();
// Success?
var_dump($response);
/** [Expected output]
*/
?>