1 | <?php |
||
30 | class XabbuhPandaExtension extends Extension |
||
31 | { |
||
32 | /** |
||
33 | * {@inheritDoc} |
||
34 | */ |
||
35 | 3 | public function load(array $configs, ContainerBuilder $container) |
|
36 | { |
||
37 | 3 | $configuration = new Configuration(); |
|
38 | 3 | $config = $this->processConfiguration($configuration, $configs); |
|
39 | |||
40 | 3 | $container->setParameter( |
|
41 | 3 | 'xabbuh_panda.video_uploader.multiple_files', |
|
42 | 3 | $config['video_uploader']['multiple_files'] |
|
43 | ); |
||
44 | 3 | $container->setParameter( |
|
45 | 3 | 'xabbuh_panda.video_uploader.cancel_button', |
|
46 | 3 | $config['video_uploader']['cancel_button'] |
|
47 | ); |
||
48 | 3 | $container->setParameter( |
|
49 | 3 | 'xabbuh_panda.video_uploader.progress_bar', |
|
50 | 3 | $config['video_uploader']['progress_bar'] |
|
51 | ); |
||
52 | |||
53 | 3 | $container->setParameter('xabbuh_panda.account.default', $config['default_account']); |
|
54 | 3 | $container->setParameter('xabbuh_panda.cloud.default', $config['default_cloud']); |
|
55 | |||
56 | // and load the service definitions |
||
57 | 3 | $loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); |
|
58 | 3 | $loader->load('account_manager.xml'); |
|
59 | 3 | $loader->load('cloud_manager.xml'); |
|
60 | 3 | $loader->load('cloud_factory.xml'); |
|
61 | 3 | $loader->load('commands.xml'); |
|
62 | 3 | $loader->load('controller.xml'); |
|
63 | 3 | $loader->load('transformers.xml'); |
|
64 | 3 | $loader->load('video_uploader_extension.xml'); |
|
65 | |||
66 | 3 | $knownAccounts = $this->loadAccounts($config['accounts'], $container); |
|
67 | 3 | $knownClouds = $this->loadClouds($config['clouds'], $container, $knownAccounts, $config['default_account']); |
|
68 | |||
69 | 3 | if (isset($knownClouds[$config['default_cloud']])) { |
|
70 | 1 | $container->setAlias(CloudInterface::class, new Alias($knownClouds[$config['default_cloud']], false)); |
|
71 | } |
||
72 | |||
73 | 3 | $baseHttpClientDefinition = $container->getDefinition('xabbuh_panda.http_client'); |
|
74 | |||
75 | 3 | foreach (array('client' => 0, 'request_factory' => 1, 'stream_factory' => 2) as $key => $argumentIndex) { |
|
76 | 3 | if (null !== $config['httplug'][$key]) { |
|
77 | $baseHttpClientDefinition->replaceArgument($argumentIndex, new Reference($config['httplug'][$key])); |
||
78 | } |
||
79 | } |
||
80 | 3 | } |
|
81 | |||
82 | 3 | private function loadAccounts(array $accounts, ContainerBuilder $container) |
|
111 | |||
112 | 3 | private function loadClouds(array $clouds, ContainerBuilder $container, array $knownAccounts, $defaultAccount) |
|
159 | |||
160 | /** |
||
161 | * {@inheritDoc} |
||
162 | */ |
||
163 | 3 | public function getNamespace() |
|
167 | |||
168 | /** |
||
169 | * {@inheritDoc} |
||
170 | */ |
||
171 | public function getXsdValidationBasePath() |
||
175 | } |
||
176 |