bernard / laravel
Bernard绑定Laravel
dev-master
2013-08-05 12:17 UTC
Requires
- php: >=5.3.0
- bernard/bernard: >=0.6,<1.0.0
- illuminate/support: ~4.0.0
Requires (Dev)
- illuminate/foundation: ~4.0.0
- mockery/mockery: ~0.7.0
- orchestra/testbench: ~2.0.0
This package is not auto-updated.
Last update: 2024-09-09 14:03:05 UTC
README
将Bernard引入Laravel。Laravel已经有一个很棒的队列..没错,但这只适用于Laravel。如果你的项目/公司使用多个框架,Bernard可以提供便利。
入门
扩展composer.json
文件
{ "require": { "bernard/laravel": "@dev" } }
在app/config/app.php
中注册服务提供者
<?php // ... 'providers' => array( // .. 'Bernard\Laravel\BernardServiceProvider' // .. )
选择驱动
现在您需要选择要使用的驱动。使用artisan
初始化默认配置文件
$ php artisan config:publish bernard/laravel
这将创建文件app/config/packages/bernard/laravel/config.php
。
Redis
在app/config/packages/bernard/laravel/config.php
中进行配置
<?php return array( 'driver' => 'predis', );
在IoC中设置predis
<?php App::singleton('predis', function () { return new \Predis\Client(null, array( 'prefix' => 'bernard:' )); });
需要predis/predis
composer包。
SQS
在app/config/packages/bernard/laravel/config.php
中进行配置
<?php return array( 'driver' => 'sqs', // optional: use prefetching for efficiency //'prefetch' => 10, // optional: pre-set queue name -> url mappings //'queue_urls' => array('some-queue' => 'https://sqs.eu-west-1.amazonaws.com/123123/some-queue', ...) );
在IoC中设置sqs
<?php use Aws\Sqs\SqsClient; // ... App::singleton('sqs', function () { return SqsClient::factory(array( 'key' => 'Your AWS Access Key', 'secret' => 'Your AWS Secret Key', 'region' => 'Your AWS Region' )); });
需要aws/aws-sdk-php
composer包。
Iron MQ
在app/config/packages/bernard/laravel/config.php
中进行配置
<?php return array( 'driver' => 'iron_mq', // use prefetching for efficiency //'prefetch' => 10 );
在IoC中设置iron_mq
<?php App::singleton('iron_mq', function () { return new \IronMq(array( 'token' => 'Your IronMQ Token', 'project_id' => 'Your IronMQ Project ID', )); });
Eloquent
适用于小型项目或测试。
在app/config/packages/bernard/laravel/config.php
中进行配置
<?php return array( 'driver' => 'eloquent', );
您还需要迁移所需的表(一次)
$ php artisan migrate --package=bernard/laravel
用法
在Laravel(无Facades)中
在您的Laravel应用程序中,向队列添加一条新消息
<?php $this->app['bernard:producer']->produce(new \Bernard\Message\DefaultMessage('MyService', array( 'my' => 'args', )));
在Laravel(有Facades)中
在您的app/config/app.php
配置文件中添加以下两个别名
<?php return array( // .. 'aliases' => array( // .. 'Producer' => 'Bernard\Laravel\Facades\Producer', 'Consumer' => 'Bernard\Laravel\Facades\Consumer', ), );
现在您可以用它们像其他任何Laravel Facade一样使用它们
<?php Producer::message('MyService', array('my' => 'args'));
从命令行
# create a new message $ php artisan bernard:produce MyService '{"json":"data"}' # consume messages $ php artisan bernard:consume my-service