lelivrescolaire/sqs-bundle

在symfony 2应用程序内部与SQS队列通信。

dev-aws-extension 2015-01-26 14:14 UTC

This package is not auto-updated.

Last update: 2024-09-14 15:16:35 UTC


README

LeLivreScolaire

SQS Bundle 构建状态 覆盖率状态

在symfony 2应用程序内部与SQS队列通信。

此捆绑包是lelivrescolaire/AWSBundle的扩展。

安装

$ composer require "lelivrescolaire/sqs-bundle:dev-master"

AppKernel

public function registerBundles()
{
    $bundles = array(
        new LLS\Bundle\AWSBundle\LLSAWSBundle(),
        new LLS\Bundle\SQSBundle\LLSSQSBundle(),
    );
}

配置参考

llsaws:
    identities:
        my_identity:                        # Arbitrary Identity service name
            type: user                      # Identity type name (factory alias)
            fields:                         # Identity fields
                key: '<user AWS key>'
                secret: '<user AWS secret>'
                region: '<region of the SQS queue>'
                endpoint: '<endpoint to plug elasticMQ or other third services; not required>'
    services:
        my_sqs_service:                     # Arbitrary service name
            type: sqs                       # Service Type (factory alias)
            identity: my_identity

llssqs:
    queues:
        my_queue:                   # Arbitrary Queue service name
            service: my_sqs_service # SQS Service name
            name: myQueue           # AWS Queue name

用法

给定前面的配置

<?php
namespace Acme\Bundle\MyBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

use LLS\Bundle\SQSBundle\Model\Queue;
use LLS\Bundle\SQSBundle\Model\Message;

class MyController extends Controller
{
    public function myAction()
    {
        $identityAsService = $this->get('llsaws.identities.my_identity');
        $sqsAsService      = $this->get('llsaws.services.my_sqs_service');
        $queueAsService    = $this->get('llssqs.queues.my_queue');

        // Create a queue

        $queue = $sqsAsService->getQueue('myCreatedQueue'); // Instanciate Queue

        $sqsAsService->createQueue($queue); // Remotely create the queue

        var_dump($queue->getUrl()); // Get queue URL

        // Send a message to a queue

        $message = new Message();
        $message->setBody('Hello world!');

        $queueAsService->sendMessage($message);

        // Fetch messages from a queue

        $maxMsg = 10; // Max number of messages to fetch

        $messages = $queueAsService->fetchMessages($maxMsg);

        foreach ($messages as $message) {
            var_dump($message->getBody());
            $queueAsService->delete($message); // Delete message (only works for fetched Messages)
        }
    }
}

将Monolog日志发送到SQS

请参阅此处

贡献

请随意发送拉取请求问题,包括您的修复和功能。

运行测试

单元测试

$ ./bin/atoum

编码规范

$ ./bin/coke