API Documentation

Zend/Service/Amazon/Sqs.php

Show: inherited
Table of Contents

Zend Framework

LICENSE

This source file is subject to the new BSD license that is bundled with this package in the file LICENSE.txt. It is also available through the world-wide-web at this URL: http://framework.zend.com/license/new-bsd If you did not receive a copy of the license and are unable to obtain it through the world-wide-web, please send an email to license@zend.com so we can send you a copy immediately.

Category
Zend  
Copyright
Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)  
License
New BSD License  
Package
Zend_Service  
Subpackage
Amazon_Sqs  
Version
$Id: Sqs.php 24594 2012-01-05 21:27:01Z matthew $  

\Zend_Service_Amazon_Sqs

Package: Zend\Service\Amazon\Sqs

Class for connecting to the Amazon Simple Queue Service (SQS)

Parent(s)
\Zend_Service_Amazon_Abstract < \Zend_Service_Abstract
See
\http://aws.amazon.com/sqs/  
Category
Zend  
Copyright
Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)  
License
New BSD License  

Constants

Constant  CREATE_TIMEOUT_DEFAULT = 30

Default timeout for createQueue() function

Properties

Propertyprotected  $_sqsApiVersion= ''2009-02-01''

The API version to use

Default value'2009-02-01'Details
Type
Propertyprotected  $_sqsEndpoint= ''queue.amazonaws.com''

HTTP end point for the Amazon SQS service

Default value'queue.amazonaws.com'Details
Type
Propertyprotected  $_sqsEndpoints= 'array('us-east-1' => 'sqs.us-east-1.amazonaws.com''
Default valuearray('us-east-1' => 'sqs.us-east-1.amazonaws.com'Details
Type
Propertyprotected  $_sqsSignatureMethod= ''HmacSHA256''

Signature Encoding Method

Default value'HmacSHA256'Details
Type
Propertyprotected  $_sqsSignatureVersion= ''2''

Signature Version

Default value'2'Details
Type

Methods

methodpublic__construct( string $accessKey = null, string $secretKey = null, string $region = null ) : void

Constructor

The default region is us-east-1. Use the region to set it to one of the regions that is build-in into ZF. To add a new AWS region use the setEndpoint() method.

Parameters
Name Type Description
$accessKey string
$secretKey string
$region string
methodprivate_makeRequest(  $queue_url, string $action, array $params = array() ) : \SimpleXMLElement

Make a request to Amazon SQS

Parameters
Name Type Description
$queue_url
$action string

SQS action

$params array
Returns
Type Description
\SimpleXMLElement
methodprotected_setEndpoint( string $region ) : void

Set SQS endpoint

Checks and sets endpoint if region exists in $_sqsEndpoints. If a new SQS region is added by amazon, please use the setEndpoint function to set it.

Parameters
Name Type Description
$region string

region

Throws
Exception Description
\Zend_Service_Amazon_Sqs_Exception
methodprotected_signParameters( string $queue_url,  $paramaters ) : string

Computes the RFC 2104-compliant HMAC signature for request parameters

This implements the Amazon Web Services signature, as per the following specification:

  1. Sort all request parameters (including SignatureVersion and excluding Signature, the value of which is being created), ignoring case.

  2. Iterate over the sorted list and append the parameter name (in its original case) and then its value. Do not URL-encode the parameter values before constructing this string. Do not use any separator characters when appending strings.

Parameters
Name Type Description
$queue_url string

Queue URL

$paramaters
Returns
Type Description
string the signed data.
methodprotectedaddRequiredParameters( string $queue_url, array $parameters ) : array

Adds required authentication and version parameters to an array of parameters

The required parameters are: - AWSAccessKey - SignatureVersion - Timestamp - Version and - Signature

If a required parameter is already set in the $parameters array, it is overwritten.

Parameters
Name Type Description
$queue_url string

Queue URL

$parameters array

the array to which to add the required parameters.

Returns
Type Description
array
methodpubliccount( string $queue_url ) : integer

Return the approximate number of messages in the queue

Parameters
Name Type Description
$queue_url string

Queue URL

Returns
Type Description
integer
Throws
Exception Description
\Zend_Service_Amazon_Sqs_Exception
methodpubliccreate( string $queue_name, integer $timeout = null ) : string|boolean

Create a new queue

Visibility timeout is how long a message is left in the queue "invisible" to other readers. If the message is acknowleged (deleted) before the timeout, then the message is deleted. However, if the timeout expires then the message will be made available to other queue readers.

Parameters
Name Type Description
$queue_name string

queue name

$timeout integer

default visibility timeout

Returns
Type Description
string|boolean
Throws
Exception Description
\Zend_Service_Amazon_Sqs_Exception
methodpublicdelete( string $queue_url ) : boolean

Delete a queue and all of it's messages

Returns false if the queue is not found, true if the queue exists

Parameters
Name Type Description
$queue_url string

queue URL

Returns
Type Description
boolean
Throws
Exception Description
\Zend_Service_Amazon_Sqs_Exception
methodpublicdeleteMessage( string $queue_url, string $handle ) : boolean

Delete a message from the queue

Returns true if the message is deleted, false if the deletion is unsuccessful.

Parameters
Name Type Description
$queue_url string

Queue URL

$handle string

Message handle as returned by SQS

Returns
Type Description
boolean
Throws
Exception Description
\Zend_Service_Amazon_Sqs_Exception
methodpublicgetAttribute( string $queue_url, string $attribute = 'All' ) : string

Get the attributes for the queue

Parameters
Name Type Description
$queue_url string

Queue URL

$attribute string
Returns
Type Description
string
Throws
Exception Description
\Zend_Service_Amazon_Sqs_Exception
methodpublicgetEndpoint( ) : string

Get the SQS endpoint

Returns
Type Description
string
methodpublicgetEndpoints( ) : array

Get possible SQS endpoints

Since there is not an SQS webserive to get all possible endpoints, a hardcoded list is available. For the actual region list please check: http://docs.amazonwebservices.com/AWSSimpleQueueService/2009-02-01/APIReference/index.html?QueueServiceWsdlArticle.html

Returns
Type Description
array
methodpublicgetQueues( ) : array

Get an array of all available queues

Returns
Type Description
array
Throws
Exception Description
\Zend_Service_Amazon_Sqs_Exception
methodpublicreceive( string $queue_url, integer $max_messages = null, integer $timeout = null ) : array

Get messages in the queue

Parameters
Name Type Description
$queue_url string

Queue name

$max_messages integer

Maximum number of messages to return

$timeout integer

Visibility timeout for these messages

Returns
Type Description
array
Throws
Exception Description
\Zend_Service_Amazon_Sqs_Exception
methodpublicsend( string $queue_url, string $message ) : string

Send a message to the queue

Parameters
Name Type Description
$queue_url string

Queue URL

$message string

Message to send to the queue

Returns
Type Description
string Message ID
Throws
Exception Description
\Zend_Service_Amazon_Sqs_Exception
methodpublicsetEndpoint( string $region ) : void

Set SQS endpoint

You can set SQS to on of the build-in regions. If the region does not exsist it will be added.

Parameters
Name Type Description
$region string

region

Throws
Exception Description
\Zend_Service_Amazon_Sqs_Exception
Documentation was generated by DocBlox 0.15.1.