Skip to content

Commit 104d3dc

Browse files
author
Robin van der Vleuten
committed
Added support for the IronMQ driver.
1 parent 8b93e19 commit 104d3dc

5 files changed

Lines changed: 34 additions & 2 deletions

File tree

DependencyInjection/BernardBernardExtension.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ public function load(array $configs, ContainerBuilder $container)
3333
$this->registerPhpRedisConfiguration($config['options'], $container);
3434
}
3535

36+
if ($config['driver'] == 'ironmq') {
37+
$this->registerIronMQConfiguration($config['options'], $container);
38+
}
39+
3640
if ($config['serializer'] == 'jms') {
3741
$this->registerJmsConfiguration($container);
3842
}
@@ -53,6 +57,11 @@ protected function registerDoctrineConfiguration($config, $container)
5357
$container->setAlias('bernard.dbal_connection', 'doctrine.dbal.' . $config['connection'] . '_connection');
5458
}
5559

60+
protected function registerIronMQConfiguration($config, $container)
61+
{
62+
$container->getDefinition('bernard.driver.ironmq')->replaceArgument(0, new Reference($config['ironmq_service']));
63+
}
64+
5665
protected function registerJmsConfiguration($container)
5766
{
5867
$definition = new Definition('Bernard\JMSSerializer\EnvelopeHandler');

DependencyInjection/Configuration.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public function getConfigTreeBuilder()
1919
->end()
2020
->children()
2121
->enumNode('driver')
22-
->values(array('file', 'predis', 'doctrine', 'phpredis'))
22+
->values(array('file', 'predis', 'doctrine', 'phpredis', 'ironmq'))
2323
->end()
2424
->enumNode('serializer')
2525
->defaultValue('simple')
@@ -40,6 +40,7 @@ public function getConfigTreeBuilder()
4040
->scalarNode('directory')->defaultValue('')->end()
4141
->scalarNode('connection')->defaultValue('default')->end()
4242
->scalarNode('phpredis_service')->defaultValue('snc_redis.bernard')->end()
43+
->scalarNode('ironmq_service')->defaultNull()->end()
4344
->arrayNode('queue_map')->prototype('array')->end()
4445
->end()
4546
->end()

README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,3 +146,21 @@ bernard_bernard:
146146

147147
If you're using the [SncRedisBundle](https://github.com/snc/SncRedisBundle) you have to set logging to false for the
148148
bernhard client to ensure that is is a ``Redis`` instance and not wrapped.
149+
150+
### IronMQ
151+
152+
When using the IronMQ driver you have to configure an `IronMQ` connection instance. You can configure it like the following:
153+
154+
``` yaml
155+
services:
156+
ironmq_connection:
157+
class: IronMQ
158+
arguments:
159+
- { token: %ironmq_token%, project_id: %ironmq_project_id% }
160+
public: false
161+
162+
bernard_bernard:
163+
driver: ironmq
164+
options:
165+
ironmq_service: ironmq_connection
166+
```

Resources/config/services.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,10 @@
6969
<argument type="service" id="bernard.dbal_connection" />
7070
</service>
7171

72+
<service id="bernard.driver.ironmq" class="Bernard\Driver\IronMqDriver" public="false">
73+
<argument /><!-- IronMQ connection instance -->
74+
</service>
75+
7276
<!-- Middlewares -->
7377
<service id="bernard.middleware.error_log" class="Bernard\Middleware\ErrorLogFactory" public="false" />
7478

Tests/DependencyInjection/ConfigurationTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public function testDefaults()
1616
$this->assertEquals('simple', $config['serializer']);
1717

1818
$this->assertEquals(array('error_log' => false, 'logger' => false, 'failures' => false), $config['middlewares']);
19-
$this->assertEquals(array('prefetch' => null, 'directory' => '', 'connection' => 'default', 'phpredis_service' => 'snc_redis.bernard', 'queue_map' => array()), $config['options']);
19+
$this->assertEquals(array('prefetch' => null, 'directory' => '', 'connection' => 'default', 'phpredis_service' => 'snc_redis.bernard', 'ironmq_service' => null, 'queue_map' => array()), $config['options']);
2020
}
2121

2222
public function testDriverIsRequired()

0 commit comments

Comments
 (0)