Skip to content

AWS Simple Queue Service component for the yii framework

Notifications You must be signed in to change notification settings

PeoplePerHour/yii-aws-sqs

 
 

Repository files navigation

yii-aws-sqs

AWS Simple Queue Service component for the yii framework version 0.1 and AWS SDK version 3.

##Requirements

  1. Yii 1.1.0 and greater
  2. Amazon SDK for PHP 3

##Installation Get a copy extensions on your codebase, preferably added a git submodule with the following way:

    $ git submodule add https://github.com/PeoplePerHour/yii-aws-sqs.git extensions/yii-aws-sqs

Copy file under extensions ( or folder of your choice ) and import it in your config file

<?php
return array(
    ...
    'import' => array(
        ...
        'ext.yii-aws-sqs.*',
        ...
    ),
    ...
);

Also, config component in your config file:

<?php
return array(
    ...
    'components' => array(
        ...
        'sqs' => array(
            'class'     => 'AWSQueueManager',//'ext.yii-aws-sqs.AWSQueueManager' if not imported
            'accessKey' => 'Access Key Id',
            'secretKey' => 'Secret Key Id',
        )
    ),
    ...
);

Install the Amazon SDK for PHP 2 and ensure the autoloader is in your index.php. For example if you installed the SDK using composer, in your index.php you'd have:

<?php
    ...
    // Autoload the libraries included by composer (e.g. AWS SDK v2)
    include_once __DIR__.'/../vendor/autoload.php';
    ...
?>

##Running test

In order you want to run test:

  1. Access your test folder in your yii application. Usually /var/www/html/myproject/tests/
  2. Define your SQS access & secret key in your bootstrap.php like:
<?php
....
define('SQS_ACCESS_KEY', 'KJGVJRHJ24v...');
define('SQS_SECRET_KEY', '6p2dnWQF3g1...');
...
?>
  1. Run the test. Example:
    phpunit ../extensions/yii-aws-sqs/tests/unit/

##Examples

###Queues In order to get a list of queues access the property AWSQueueManager::$queues like

<?php
    //This will trigger a request to SQS the first time it is called & will return AWSQueueList object.
    $myAwsQueues = Yii::app()->queues;
    //In order to refresh use the `$refresh` param;
    $myAwsQueues = Yii::app()->getQueues(true);

A queue can be accessed either from the queues object either from the sqs object. Like:

<?php
    Yii::app()->sqs->queues->myTestQueue; // is equal to
    Yii::app()->sqs->myTestQueue;

Creating a queue is easy

<?php
    if(($newQueue=Yii::app()->sqs->create('myTestingQueue'))!==null) {
        $newQueue->send('message');//Sending a message, see later for instructions
    }

githalytics.com alpha

About

AWS Simple Queue Service component for the yii framework

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 100.0%