Skip to content

Commit 8e3c879

Browse files
committed
Merge pull request #220 from bburnichon/feature/add-connection-parameters
Add "ssl_context" to dependency injection
2 parents 3dd7076 + 51b26fa commit 8e3c879

File tree

4 files changed

+38
-1
lines changed

4 files changed

+38
-1
lines changed

DependencyInjection/Configuration.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,11 @@ protected function addConnections(ArrayNodeDefinition $node)
5656
->booleanNode('lazy')->defaultFalse()->end()
5757
->scalarNode('connection_timeout')->defaultValue(3)->end()
5858
->scalarNode('read_write_timeout')->defaultValue(3)->end()
59+
->arrayNode('ssl_context')
60+
->useAttributeAsKey('key')
61+
->canBeUnset()
62+
->prototype('variable')->end()
63+
->end()
5964
->booleanNode('keepalive')->defaultFalse()->info('requires php-amqplib v2.4.1+ and PHP5.4+')->end()
6065
->scalarNode('heartbeat')->defaultValue(0)->info('requires php-amqplib v2.4.1+')->end()
6166
->end()

DependencyInjection/OldSoundRabbitMqExtension.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ protected function loadConnections()
7474
? '%old_sound_rabbit_mq.lazy.connection.class%'
7575
: '%old_sound_rabbit_mq.connection.class%';
7676

77+
$context = ! empty($connection['ssl_context'])
78+
? stream_context_create(array('ssl' => $connection['ssl_context'])) : null;
7779
$definition = new Definition($classParam, array(
7880
$connection['host'],
7981
$connection['port'],
@@ -86,7 +88,7 @@ protected function loadConnections()
8688
'en_US', // locale
8789
$connection['connection_timeout'],
8890
$connection['read_write_timeout'],
89-
null, // context
91+
$context, // context
9092
$connection['keepalive'],
9193
$connection['heartbeat'],
9294
));

Tests/DependencyInjection/Fixtures/test.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,15 @@ old_sound_rabbit_mq:
1010
password: foo_password
1111
vhost: /foo
1212

13+
ssl_connection:
14+
host: ssl_host
15+
port: 123
16+
user: ssl_user
17+
password: ssl_password
18+
vhost: /ssl
19+
ssl_context:
20+
verify_peer: false
21+
1322
lazy_connection:
1423
host: lazy_host
1524
port: 456

Tests/DependencyInjection/OldSoundRabbitMqExtensionTest.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,27 @@ public function testFooConnectionDefinition()
2525
$this->assertEquals('%old_sound_rabbit_mq.connection.class%', $definition->getClass());
2626
}
2727

28+
public function testSslConnectionDefinition()
29+
{
30+
$container = $this->getContainer('test.yml');
31+
32+
$this->assertTrue($container->has('old_sound_rabbit_mq.connection.ssl_connection'));
33+
$definition = $container->getDefinition('old_sound_rabbit_mq.connection.ssl_connection');
34+
$this->assertEquals('ssl_host', $definition->getArgument(0));
35+
$this->assertEquals(123, $definition->getArgument(1));
36+
$this->assertEquals('ssl_user', $definition->getArgument(2));
37+
$this->assertEquals('ssl_password', $definition->getArgument(3));
38+
$this->assertEquals('/ssl', $definition->getArgument(4));
39+
40+
$context = $definition->getArgument(11);
41+
$this->assertInternalType('resource', $context);
42+
$this->assertEquals('stream-context', get_resource_type($context));
43+
$options = stream_context_get_options($context);
44+
$this->assertEquals(array('ssl' => array('verify_peer' => false)), $options);
45+
46+
$this->assertEquals('%old_sound_rabbit_mq.connection.class%', $definition->getClass());
47+
}
48+
2849
public function testLazyConnectionDefinition()
2950
{
3051
$container = $this->getContainer('test.yml');

0 commit comments

Comments
 (0)