|
11 | 11 |
|
12 | 12 | namespace Symfony\Component\HttpKernel\Bundle;
|
13 | 13 |
|
| 14 | +use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition; |
14 | 15 | use Symfony\Component\Config\Definition\Builder\TreeBuilder;
|
15 | 16 | use Symfony\Component\Config\Definition\ConfigurationInterface;
|
| 17 | +use Symfony\Component\Config\FileLocat
8000
or; |
| 18 | +use Symfony\Component\Config\Loader\DelegatingLoader; |
| 19 | +use Symfony\Component\Config\Loader\LoaderResolver; |
| 20 | +use Symfony\Component\Config\Loader\LoaderInterface; |
| 21 | +use Symfony\Component\DependencyInjection\Container; |
16 | 22 | use Symfony\Component\DependencyInjection\ContainerBuilder;
|
| 23 | +use Symfony\Component\DependencyInjection\Loader\XmlFileLoader; |
| 24 | +use Symfony\Component\DependencyInjection\Loader\YamlFileLoader; |
| 25 | +use Symfony\Component\DependencyInjection\Loader\IniFileLoader; |
| 26 | +use Symfony\Component\DependencyInjection\Loader\PhpFileLoader; |
| 27 | +use Symfony\Component\DependencyInjection\Loader\DirectoryLoader; |
| 28 | +use Symfony\Component\DependencyInjection\Loader\ClosureLoader; |
17 | 29 | use Symfony\Component\HttpKernel\DependencyInjection\Extension;
|
18 | 30 |
|
19 | 31 | /**
|
@@ -49,11 +61,11 @@ final public function getConfigTreeBuilder()
|
49 | 61 | return $treeBuilder;
|
50 | 62 | }
|
51 | 63 |
|
52 |
| - protected function buildConfiguration(TreeBuilder $rootNode) |
| 64 | + protected function buildConfiguration(ArrayNodeDefinition $rootNode) |
53 | 65 | {
|
54 | 66 | }
|
55 | 67 |
|
56 |
| - protected function buildContainer(array $config, ContainerBuilder $container) |
| 68 | + protected function load(array $config, ContainerBuilder $container, LoaderInterface $loader) |
57 | 69 | {
|
58 | 70 | }
|
59 | 71 | }
|
@@ -90,10 +102,21 @@ public function load(array $configs, ContainerBuilder $container)
|
90 | 102 | {
|
91 | 103 | $config = $this->processConfiguration($this->bundle, $configs);
|
92 | 104 |
|
93 |
| - $f = Closure::bind(function (array $config, ContainerBuilder $container) { |
94 |
| - $this->buildContainer($config, $container); |
95 |
| - }, $this->bundle, SimpleBundle::class); |
96 |
| - $f($config, $container); |
| 105 | + // Loader |
| 106 | + $locator = new FileLocator($this->bundle->getPath().'/Resources/config'); |
| 107 | + $resolver = new LoaderResolver(array( |
| 108 | + new XmlFileLoader($container, $locator), |
| 109 | + new YamlFileLoader($container, $locator), |
| 110 | + new IniFileLoader($container, $locator), |
| 111 | + new PhpFileLoader($container, $locator), |
| 112 | + new DirectoryLoader($container, $locator), |
| 113 | + new ClosureLoader($container), |
| 114 | + )); |
| 115 | + $loader = new DelegatingLoader($resolver); |
| 116 | + |
| 117 | + call_user_func(\Closure::bind(function () use ($config, $container, $loader){ |
| 118 | + $this->load($config, $container, $loader); |
| 119 | + }, $this->bundle, SimpleBundle::class)); |
97 | 120 | }
|
98 | 121 |
|
99 | 122 | /**
|
|
0 commit comments