1 | <?php |
||
20 | class ElasticaExtension extends Extension |
||
21 | { |
||
22 | const CLIENT_ID_TEMPLATE = 'elastica.%s_client'; |
||
23 | |||
24 | /** |
||
25 | * {@inheritdoc} |
||
26 | */ |
||
27 | 7 | public function load(array $configs, ContainerBuilder $container) |
|
28 | { |
||
29 | 7 | $configuration = new Configuration(); |
|
30 | 7 | $config = $this->processConfiguration($configuration, $configs); |
|
31 | |||
32 | 7 | $loader = new Loader\YamlFileLoader( |
|
33 | 7 | $container, |
|
34 | 7 | new FileLocator(__DIR__ . '/../Resources/config') |
|
35 | 7 | ); |
|
36 | |||
37 | 7 | $loader->load('services.yml'); |
|
38 | |||
39 | 7 | $this->loadLogger($config, $container); |
|
40 | 7 | $this->loadClients($config, $container); |
|
41 | 7 | $this->setupAutowire($config, $container); |
|
42 | 7 | } |
|
43 | |||
44 | 7 | private function loadLogger(array $config, ContainerBuilder $container) |
|
56 | |||
57 | 7 | private function createLoggerReference(array $config) |
|
68 | |||
69 | /** |
||
70 | * @param array $config |
||
71 | * @param ContainerBuilder $container |
||
72 | */ |
||
73 | 7 | private function loadClients(array $config, ContainerBuilder $container) |
|
79 | |||
80 | /** |
||
81 | * @param string $clientName |
||
82 | * @param array $clientConfig |
||
83 | * @param ContainerBuilder $container |
||
84 | */ |
||
85 | 2 | private function loadClient($clientName, array $clientConfig, ContainerBuilder $container) |
|
99 | |||
100 | /** |
||
101 | * Configure service auto-wiring for default Elastica client |
||
102 | * for Symfony 3.3+ |
||
103 | * |
||
104 | * @param array $config |
||
105 | * @param ContainerBuilder $container |
||
106 | * |
||
107 | * @throws LogicException |
||
108 | */ |
||
109 | 7 | private function setupAutowire(array $config, ContainerBuilder $container) |
|
133 | |||
134 | 2 | private function createClientId($clientName) |
|
138 | } |
||
139 |