starx / bernard-silex
Bernard 的 Silex 服务提供者
0.5.0
2014-02-04 14:54 UTC
Requires
- php: >=5.3.3
- bernard/bernard: >=0.12,<0.13
Requires (Dev)
- silex/silex: ~1.0
This package is not auto-updated.
Last update: 2024-09-20 02:20:25 UTC
README
入门指南
将需求添加到您的 composer.json
文件中,并与您的应用程序注册。
{ "require" : { "bernard/silex" : "~0.4@dev" } }
<?php $app = new Silex\Application; $app->register(new Bernard\Silex\BernardServiceProvider, array( 'bernard.options' => array( 'driver' => 'doctrine', // or redis, predis, sqs, iron_mq 'serializer' => 'symfony', // or jms or simple ), ));
之后,您需要决定要使用哪种驱动程序以及哪种类型的序列化器。
以下序列化器受支持
- 简单。没有依赖项,它是默认选项。
- JMS Serializer。需要具有 id
jms_serializer
的服务,并且存在jms_serializer.builder
。 - Symfony Serializer。需要在注册此提供者之前注册
SerializerServiceProvider
。
以下驱动程序受支持
- Doctrine DBAL 需要
DoctrineServiceProvider
,它尝试使用一个bernard
连接。 - Predis 需要 https://github.com/nrk/PredisServiceProvider 和一个
predis
服务。如果您使用多服务提供者,您应该覆盖bernard.predis_driver
并进行自定义服务。 - Redis 扩展。需要安装 http://pecl.php.net/package/redis 并有一个
redis
服务。 - Amazon SQS 需要 AWS SDK PHP 版本 2 或更高版本,以及 https://github.com/aws/aws-sdk-php-silex。
- Iron.MQ 需要
iron-io/iron_mq
包和一个iron_mq
服务。
通过 ServiceResolver 注册
ServiceResolver 启用对服务 id 的支持。这意味着它们在需要时才按需加载,而不是在注册时。
以类似以下方式将 bernard.services
注册为数组 MessageName => ServiceId
<?php $app['bernard.receivers'] = array( 'ImportUsers' => 'users_worker', );
控制台
如果存在名为 console
的服务,消费命令将自动注册。对于高级用例,请参阅 Bernard 的官方文档。