Skip to content

Commit e9dd2db

Browse files
committed
[Config][FrameworkBundle] Lazy load resource checkers
1 parent 0cce93c commit e9dd2db

File tree

5 files changed

+14
-12
lines changed

5 files changed

+14
-12
lines changed

DependencyInjection/ConfigCachePass.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
namespace Symfony\Component\Config\DependencyInjection;
1313

14+
use Symfony\Component\DependencyInjection\Argument\IteratorArgument;
1415
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
1516
use Symfony\Component\DependencyInjection\Compiler\PriorityTaggedServiceTrait;
1617
use Symfony\Component\DependencyInjection\ContainerBuilder;
@@ -42,6 +43,6 @@ public function process(ContainerBuilder $container)
4243
return;
4344
}
4445

45-
$container->getDefinition($this->factoryServiceId)->replaceArgument(0, $resourceCheckers);
46+
$container->getDefinition($this->factoryServiceId)->replaceArgument(0, new IteratorArgument($resourceCheckers));
4647
}
4748
}

ResourceCheckerConfigCache.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,15 @@ class ResourceCheckerConfigCache implements ConfigCacheInterface
2929
private $file;
3030

3131
/**
32-
* @var ResourceCheckerInterface[]
32+
* @var iterable|ResourceCheckerInterface[]
3333
*/
3434
private $resourceCheckers;
3535

3636
/**
37-
* @param string $file The absolute cache path
38-
* @param ResourceCheckerInterface[] $resourceCheckers The ResourceCheckers to use for the freshness check
37+
* @param string $file The absolute cache path
38+
* @param iterable|ResourceCheckerInterface[] $resourceCheckers The ResourceCheckers to use for the freshness check
3939
*/
40-
public function __construct($file, array $resourceCheckers = array())
40+
public function __construct($file, $resourceCheckers = array())
4141
{
4242
$this->file = $file;
4343
$this->resourceCheckers = $resourceCheckers;

ResourceCheckerConfigCacheFactory.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@
2020
class ResourceCheckerConfigCacheFactory implements ConfigCacheFactoryInterface
2121
{
2222
/**
23-
* @var ResourceCheckerInterface[]
23+
* @var iterable|ResourceCheckerInterface[]
2424
*/
2525
private $resourceCheckers = array();
2626

2727
/**
28-
* @param ResourceCheckerInterface[] $resourceCheckers
28+
* @param iterable|ResourceCheckerInterface[] $resourceCheckers
2929
*/
30-
public function __construct(array $resourceCheckers = array())
30+
public function __construct($resourceCheckers = array())
3131
{
3232
$this->resourceCheckers = $resourceCheckers;
3333
}

Tests/DependencyInjection/ConfigCachePassTest.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
namespace Symfony\Component\Config\Tests\DependencyInjection;
1313

1414
use PHPUnit\Framework\TestCase;
15+
use Symfony\Component\DependencyInjection\Argument\IteratorArgument;
1516
use Symfony\Component\DependencyInjection\Reference;
1617
use Symfony\Component\Config\DependencyInjection\ConfigCachePass;
1718

@@ -38,11 +39,11 @@ public function testThatCheckersAreProcessedInPriorityOrder()
3839

3940
$definition->expects($this->once())
4041
->method('replaceArgument')
41-
->with(0, array(
42+
->with(0, new IteratorArgument(array(
4243
new Reference('checker_1'),
4344
new Reference('checker_2'),
4445
new Reference('checker_3'),
45-
));
46+
)));
4647

4748
$pass = new ConfigCachePass();
4849
$pass->process($container);

composer.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@
2121
},
2222
"require-dev": {
2323
"symfony/yaml": "~3.0",
24-
"symfony/dependency-injection": "~3.2"
24+
"symfony/dependency-injection": "~3.3"
2525
},
2626
"conflict": {
27-
"symfony/dependency-injection": "<3.2"
27+
"symfony/dependency-injection": "<3.3"
2828
},
2929
"suggest": {
3030
"symfony/yaml": "To use the yaml reference dumper"

0 commit comments

Comments
 (0)