3 namespace Rapsys\UserBundle\DependencyInjection
;
5 use Symfony\Component\DependencyInjection\ContainerBuilder
;
6 use Symfony\Component\DependencyInjection\Extension\Extension
;
9 * This is the class that loads and manages your bundle configuration.
11 * @link http://symfony.com/doc/current/cookbook/bundles/extension.html
13 class RapsysUserExtension
extends Extension
{
17 public function load(array $configs, ContainerBuilder
$container) {
19 $configuration = $this->getConfiguration($configs, $container);
21 //Process the configuration to get merged config
22 $config = $this->processConfiguration($configuration, $configs);
24 //Detect when no user configuration is provided
25 if ($configs === [[]]) {
26 //Prepend default config
27 $container->prependExtensionConfig($this->getAlias(), $config);
30 //Save configuration in parameters
31 $container->setParameter($this->getAlias(), $config);
37 public function getAlias() {
42 * The function that parses the array to flatten it into a one level depth array
44 * @param $array The config values array
45 * @param $path The current key path
46 * @param $depth The maxmium depth
47 * @param $sep The separator string
49 /*protected function flatten($array, $path, $depth = 10, $sep = '.') {
53 //Pass through non hashed or empty array
54 if ($depth && is_array($array) && ($array === [] || array_keys($array) === range(0, count($array) - 1))) {
56 //Flatten hashed array
57 } elseif ($depth && is_array($array)) {
58 foreach($array as $k => $v) {
59 $sub = $path ? $path.$sep.$k:$k;
60 $res += $this->flatten($v, $sub, $depth - 1, $sep);
62 //Pass scalar value directly