From aef69b935e7bc07468cada32270942cef0034b94 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rapha=C3=ABl=20Gertz?= Date: Mon, 28 Dec 2020 08:38:47 +0100 Subject: [PATCH] Cleanup Add locale, locales and languages config keys --- DependencyInjection/Configuration.php | 13 +++++++++++-- DependencyInjection/RapsysAirExtension.php | 21 ++++++++++++++++++++- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index 4e20178..ed54893 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -65,14 +65,16 @@ class Configuration implements ConfigurationInterface { 'url' => 'rapsys_air' ], 'copy' => [ - 'long' => 'John Doe all rights reserved', + 'long' => 'All rights reserved', 'short' => 'Copyright 2019' ], 'contact' => [ 'name' => 'John Doe', 'mail' => 'contact@example.com' ], - 'locales' => '%kernel.translator.fallbacks%' + 'locale' => '%kernel.default_locale%', + 'locales' => '%kernel.translator.fallbacks%', + 'languages' => '%rapsys_user.languages%', ]; //Here we define the parameters that are allowed to configure the bundle. @@ -115,7 +117,14 @@ class Configuration implements ConfigurationInterface { ->scalarNode('mail')->cannotBeEmpty()->defaultValue($defaults['contact']['mail'])->end() ->end() ->end() + ->scalarNode('locale')->cannotBeEmpty()->defaultValue($defaults['locale'])->end() ->scalarNode('locales')->cannotBeEmpty()->defaultValue($defaults['locales'])->end() + ->scalarNode('languages')->cannotBeEmpty()->defaultValue($defaults['languages'])->end() + /*->arrayNode('languages') + ->treatNullLike([]) + ->defaultValue($defaults['languages']) + ->scalarPrototype()->end() + ->end()*/ ->end() ->end(); diff --git a/DependencyInjection/RapsysAirExtension.php b/DependencyInjection/RapsysAirExtension.php index ba082de..e00159b 100644 --- a/DependencyInjection/RapsysAirExtension.php +++ b/DependencyInjection/RapsysAirExtension.php @@ -36,6 +36,25 @@ class RapsysAirExtension extends Extension implements PrependExtensionInterface //Set translator fallbacks $container->setParameter('kernel.translator.fallbacks', $framework['translator']['fallbacks']); + //Set default locale + $container->setParameter('kernel.default_locale', $framework['default_locale']); + + //Load rapsys_user configurations + //XXX: required to extract default_locale and translation.fallbacks + $rapsys_users = $container->getExtensionConfig('rapsys_user'); + + //Recursively merge rapsys_user configurations + $rapsys_user = array_reduce( + $rapsys_users, + function ($res, $i) { + return array_merge_recursive($res, $i); + }, + [] + ); + + //Set rapsys_user.languages key + $container->setParameter('rapsys_user.languages', $rapsys_user['languages']); + //Process the configuration $configs = $container->getExtensionConfig($this->getAlias()); @@ -56,7 +75,7 @@ class RapsysAirExtension extends Extension implements PrependExtensionInterface //Store flattened array in parameters //XXX: don't flatten rapsys_air.site.png key which is required to be an array - foreach($this->flatten($config, $this->getAlias(), 10, '.', ['rapsys_air.site.png', 'rapsys_air.locales']) as $k => $v) { + foreach($this->flatten($config, $this->getAlias(), 10, '.', ['rapsys_air.site.png', 'rapsys_air.locales', 'rapsys_air.languages']) as $k => $v) { $container->setParameter($k, $v); } } -- 2.41.0