]> Raphaël G. Git Repositories - packbundle/blob - DependencyInjection/RapsysPackExtension.php
Version 0.5.0
[packbundle] / DependencyInjection / RapsysPackExtension.php
1 <?php declare(strict_types=1);
2
3 /*
4 * This file is part of the Rapsys PackBundle package.
5 *
6 * (c) Raphaël Gertz <symfony@rapsys.eu>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12 namespace Rapsys\PackBundle\DependencyInjection;
13
14 use Rapsys\PackBundle\RapsysPackBundle;
15
16 use Symfony\Component\DependencyInjection\ContainerBuilder;
17 use Symfony\Component\DependencyInjection\Extension\Extension;
18
19 /**
20 * This is the class that loads and manages your bundle configuration.
21 *
22 * @link http://symfony.com/doc/current/cookbook/bundles/extension.html
23 *
24 * {@inheritdoc}
25 */
26 class RapsysPackExtension extends Extension {
27 /**
28 * {@inheritdoc}
29 */
30 public function load(array $configs, ContainerBuilder $container): void {
31 //Load configuration
32 $configuration = $this->getConfiguration($configs, $container);
33
34 //Process the configuration to get merged config
35 $config = $this->processConfiguration($configuration, $configs);
36
37 //Set bundle alias
38 $alias = RapsysPackBundle::getAlias();
39
40 //Detect when no user configuration is provided
41 if ($configs === [[]]) {
42 //Prepend default config
43 $container->prependExtensionConfig($alias, $config);
44 }
45
46 //Save configuration in parameters
47 $container->setParameter($alias, $config);
48
49 //Set rapsyspack.alias key
50 $container->setParameter($alias.'.alias', $alias);
51
52 //Set rapsyspack.path key
53 $container->setParameter($alias.'.path', $config['path']);
54
55 //Set rapsyspack.version key
56 $container->setParameter($alias.'.version', RapsysPackBundle::getVersion());
57 }
58
59 /**
60 * {@inheritdoc}
61 *
62 * @xxx Required by kernel to load renamed alias configuration
63 */
64 public function getAlias(): string {
65 return RapsysPackBundle::getAlias();
66 }
67 }