1 <?php
declare(strict_types
=1);
4 * This file is part of the Rapsys PackBundle package.
6 * (c) Raphaël Gertz <symfony@rapsys.eu>
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
12 namespace Rapsys\PackBundle\DependencyInjection
;
14 use Symfony\Component\DependencyInjection\ContainerBuilder
;
15 use Symfony\Component\DependencyInjection\Extension\Extension
;
17 use Rapsys\PackBundle\RapsysPackBundle
;
20 * This is the class that loads and manages your bundle configuration.
22 * @link http://symfony.com/doc/current/cookbook/bundles/extension.html
26 class RapsysPackExtension
extends Extension
{
30 public function load(array $configs, ContainerBuilder
$container): void {
32 $configuration = $this->getConfiguration($configs, $container);
34 //Process the configuration to get merged config
35 $config = $this->processConfiguration($configuration, $configs);
37 //Detect when no user configuration is provided
38 if ($configs === [[]]) {
39 //Prepend default config
40 $container->prependExtensionConfig(self
::getAlias(), $config);
43 //Save configuration in parameters
44 $container->setParameter(self
::getAlias(), $config);
46 //Set rapsys_pack.public.path key
47 $container->setParameter(self
::getAlias().'.public.path', $config['public']['path']);
49 //Set rapsys_pack.public.url key
50 $container->setParameter(self
::getAlias().'.public.url', $config['public']['url']);
56 public function getAlias(): string {
57 return RapsysPackBundle
::getAlias();