Skip to content

Commit d4e4033

Browse files
committed
Use method_exists to avoid deprecation warning
1 parent 866b29c commit d4e4033

2 files changed

Lines changed: 22 additions & 6 deletions

File tree

DependencyInjection/BernardBernardExtension.php

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,11 @@ protected function registerFlatFileConfiguration($config, $container)
5656
protected function registerSqsConfiguration(array $config, ContainerBuilder $container)
5757
{
5858
$sqsClientDefinition = new Definition();
59-
if (Kernel::MAJOR_VERSION == 2 && Kernel::MINOR_VERSION < 6) {
59+
if ($this->definitionClassDeprecatesSetFactoryClassAndSetFactoryMethod()) {
60+
$sqsClientDefinition->setFactory('Aws\Sqs\SqsClient::factory');
61+
} else {
6062
$sqsClientDefinition->setFactoryClass('Aws\Sqs\SqsClient')
6163
->setFactoryMethod('factory');
62-
} else {
63-
$sqsClientDefinition->setFactory('Aws\Sqs\SqsClient::factory');
6464
}
6565
$sqsClientDefinition->setArguments(
6666
array(
@@ -119,4 +119,12 @@ protected function registerPhpRedisConfiguration($config, $container)
119119
{
120120
$container->getDefinition('bernard.driver.phpredis')->replaceArgument(0, new Reference($config['phpredis_service']));
121121
}
122+
123+
/**
124+
* @return bool
125+
*/
126+
private function definitionClassDeprecatesSetFactoryClassAndSetFactoryMethod()
127+
{
128+
return method_exists(new Definition(), 'setFactory');
129+
}
122130
}

Tests/DependencyInjection/BernardBernardExtensionTest.php

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -136,11 +136,11 @@ public function testSqsDriverCanBeBuildFromConfiguration()
136136

137137
/** @var Definition $resultingSqsClientArgument */
138138
$resultingSqsClientArgument = $driverDefinition->getArgument(0);
139-
if (Kernel::MAJOR_VERSION == 2 && Kernel::MINOR_VERSION < 6) {
139+
if ($this->definitionClassDeprecatesSetFactoryClassAndSetFactoryMethod()) {
140+
$this->assertSame(array('Aws\Sqs\SqsClient', 'factory'), $resultingSqsClientArgument->getFactory());
141+
} else {
140142
$this->assertSame('Aws\Sqs\SqsClient', $resultingSqsClientArgument->getFactoryClass());
141143
$this->assertSame('factory', $resultingSqsClientArgument->getFactoryMethod());
142-
} else {
143-
$this->assertSame(array('Aws\Sqs\SqsClient', 'factory'), $resultingSqsClientArgument->getFactory());
144144
}
145145

146146
$sqsClientFactoryArguments = $resultingSqsClientArgument->getArguments();
@@ -155,4 +155,12 @@ public function testSqsDriverCanBeBuildFromConfiguration()
155155
$resultingPrefetchArgument = $driverDefinition->getArgument(2);
156156
$this->assertEquals($configuredPrefetch, $resultingPrefetchArgument);
157157
}
158+
159+
/**
160+
* @return bool
161+
*/
162+
private function definitionClassDeprecatesSetFactoryClassAndSetFactoryMethod()
163+
{
164+
return method_exists(new Definition(), 'setFactory');
165+
}
158166
}

0 commit comments

Comments
 (0)