Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 69614da

Browse filesBrowse files
committed
minor #21680 [FrameworkBundle] resolve parameters in definition classes (xabbuh)
This PR was merged into the 2.7 branch. Discussion ---------- [FrameworkBundle] resolve parameters in definition classes | Q | A | ------------- | --- | Branch? | 2.7 | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | symfony/symfony#21637 (comment) | License | MIT | Doc PR | Commits ------- 37ce682947 resolve parameters in definition classes
2 parents 28f0db8 + 27d56a9 commit 69614da
Copy full SHA for 69614da

File tree

2 files changed

+40
-9
lines changed
Filter options

2 files changed

+40
-9
lines changed

‎DependencyInjection/Compiler/DataCollectorTranslatorPass.php

Copy file name to clipboardExpand all lines: DependencyInjection/Compiler/DataCollectorTranslatorPass.php
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public function process(ContainerBuilder $container)
2525
return;
2626
}
2727

28-
$translatorClass = $container->findDefinition('translator')->getClass();
28+
$translatorClass = $container->getParameterBag()->resolveValue($container->findDefinition('translator')->getClass());
2929

3030
if (!is_subclass_of($translatorClass, 'Symfony\Component\Translation\TranslatorBagInterface')) {
3131
$container->removeDefinition('translator.data_collector');

‎Tests/DependencyInjection/Compiler/DataCollectorTranslatorPassTest.php

Copy file name to clipboardExpand all lines: Tests/DependencyInjection/Compiler/DataCollectorTranslatorPassTest.php
+39-8Lines changed: 39 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ protected function setUp()
2626
$this->container = new ContainerBuilder();
2727
$this->dataCollectorTranslatorPass = new DataCollectorTranslatorPass();
2828

29+
$this->container->setParameter('translator_implementing_bag', 'Symfony\Component\Translation\Translator');
30+
$this->container->setParameter('translator_not_implementing_bag', 'Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection\Compiler\TranslatorWithTranslatorBag');
31+
2932
$this->container->register('translator.data_collector', 'Symfony\Component\Translation\DataCollectorTranslator')
3033
->setPublic(false)
3134
->setDecoratedService('translator')
@@ -37,41 +40,69 @@ protected function setUp()
3740
;
3841
}
3942

40-
public function testProcessKeepsDataCollectorTranslatorIfItImplementsTranslatorBagInterface()
43+
/**
44+
* @dataProvider getImplementingTranslatorBagInterfaceTranslatorClassNames
45+
*/
46+
public function testProcessKeepsDataCollectorTranslatorIfItImplementsTranslatorBagInterface($class)
4147
{
42-
$this->container->register('translator', 'Symfony\Component\Translation\Translator');
48+
$this->container->register('translator', $class);
4349

4450
$this->dataCollectorTranslatorPass->process($this->container);
4551

4652
$this->assertTrue($this->container->hasDefinition('translator.data_collector'));
4753
}
4854

49-
public function testProcessKeepsDataCollectorIfTranslatorImplementsTranslatorBagInterface()
55+
/**
56+
* @dataProvider getImplementingTranslatorBagInterfaceTranslatorClassNames
57+
*/
58+
public function testProcessKeepsDataCollectorIfTranslatorImplementsTranslatorBagInterface($class)
5059
{
51-
$this->container->register('translator', 'Symfony\Component\Translation\Translator');
60+
$this->container->register('translator', $class);
5261

5362
$this->dataCollectorTranslatorPass->process($this->container);
5463

5564
$this->assertTrue($this->container->hasDefinition('data_collector.translation'));
5665
}
5766

58-
public function testProcessRemovesDataCollectorTranslatorIfItDoesNotImplementTranslatorBagInterface()
67+
public function getImplementingTranslatorBagInterfaceTranslatorClassNames()
68+
{
69+
return array(
70+
array('Symfony\Component\Translation\Translator'),
71+
array('%translator_implementing_bag%'),
72+
);
73+
}
74+
75+
/**
76+
* @dataProvider getNotImplementingTranslatorBagInterfaceTranslatorClassNames
77+
*/
78+
public function testProcessRemovesDataCollectorTranslatorIfItDoesNotImplementTranslatorBagInterface($class)
5979
{
60-
$this->container->register('translator', 'Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection\Compiler\TranslatorWithTranslatorBag');
80+
$this->container->register('translator', $class);
6181

6282
$this->dataCollectorTranslatorPass->process($this->container);
6383

6484
$this->assertFalse($this->container->hasDefinition('translator.data_collector'));
6585
}
6686

67-
public function testProcessRemovesDataCollectorIfTranslatorDoesNotImplementTranslatorBagInterface()
87+
/**
88+
* @dataProvider getNotImplementingTranslatorBagInterfaceTranslatorClassNames
89+
*/
90+
public function testProcessRemovesDataCollectorIfTranslatorDoesNotImplementTranslatorBagInterface($class)
6891
{
69-
$this->container->register('translator', 'Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection\Compiler\TranslatorWithTranslatorBag');
92+
$this->container->register('translator', $class);
7093

7194
$this->dataCollectorTranslatorPass->process($this->container);
7295

7396
$this->assertFalse($this->container->hasDefinition('data_collector.translation'));
7497
}
98+
99+
public function getNotImplementingTranslatorBagInterfaceTranslatorClassNames()
100+
{
101+
return array(
102+
array('Symfony\Bundle\FrameworkBundle\Tests\DependencyInjection\Compiler\TranslatorWithTranslatorBag'),
103+
array('%translator_not_implementing_bag%'),
104+
);
105+
}
75106
}
76107

77108
class TranslatorWithTranslatorBag implements TranslatorInterface

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.