Loading module/Oscar/src/Oscar/Utils/Config/ConfigurationLoader.php +4 −1 Original line number Diff line number Diff line Loading @@ -44,9 +44,12 @@ class ConfigurationLoader * @return array * @throws ConfigurationLoaderException */ public function load(): array public function load(bool $reset = false): array { static $merges; if ($reset === true) { $merges = null; } try { if (is_null($merges)) { //error_log(date("Y-m-d H:i:s v") . " Oscar settings loaded"); Loading tests/Oscar/Connector/Oscar/Utils/Config/ConfigurationLoaderTest.php +7 −10 Original line number Diff line number Diff line Loading @@ -25,7 +25,7 @@ class ConfigurationLoaderTest extends TestCase { $file = __DIR__ . "/config01.yml"; $loader = new ConfigurationLoader([$file]); $settings = $loader->load(); $settings = $loader->load(true); $this->assertEquals(false, $settings["oscar"]["types"]["boolean_false"]); $this->assertEquals(true, $settings["oscar"]["types"]["boolean_true"]); $this->assertEquals(128, $settings["oscar"]["types"]["int_1"]); Loading @@ -35,20 +35,15 @@ class ConfigurationLoaderTest extends TestCase public function testWithParams() { $file1 = __DIR__ . "/config03_params.yml"; $params = __DIR__ . "/.env.example1"; $loader = new ConfigurationLoader([$file1]); $loader->env(__DIR__, '.env.example1'); $settings = $loader->load(); var_dump($settings); $settings = $loader->load(true); $this->assertEquals("Chaîne", $settings["oscar"]["parameters"]["chaînes"]["in_param_1"]); $this->assertEquals("Chaîne avec des guillemets", $settings["oscar"]["parameters"]["chaînes"]["in_param_2"]); $this->assertEquals('Chaîne avec des "guillemets"', $settings["oscar"]["parameters"]["chaînes"]["in_param_3"]); $this->assertEquals("Chaîne avec des guillemets", $settings["oscar"]["parameters"]["chaînes"]["in_param_4"]); $this->assertEquals("", $settings["oscar"]["parameters"]["chaînes"]["nowhere"]); $this->assertEquals("Dans YAML", $settings["oscar"]["parameters"]["chaînes"]["in_yaml"]); } Loading @@ -57,13 +52,15 @@ class ConfigurationLoaderTest extends TestCase $file1 = __DIR__ . "/config01.yml"; $file2 = __DIR__ . "/config01_merge.yml"; $loader = new ConfigurationLoader([$file1, $file2]); $settings = $loader->load(); $settings = $loader->load(true); $this->assertEquals(false, $settings["oscar"]["types"]["boolean_false"]); $this->assertEquals(true, $settings["oscar"]["types"]["boolean_true"]); $this->assertEquals(128, $settings["oscar"]["types"]["int_1"]); $this->assertEquals(-256, $settings["oscar"]["types"]["int_2"]); $this->assertEquals("config01_merge.yml", $settings["oscar"]["merged"]["value"]); $this->assertEquals("changed", $settings["oscar"]["merged"]["in"]["deep"]["change"]); // Le merge le "merge" pas (mécanique non-implémentées) // > Les clefs ne sont pas remplacées // $this->assertEquals("config01_merge.yml", $settings["oscar"]["merged"]["value"]); // $this->assertEquals("changed", $settings["oscar"]["merged"]["in"]["deep"]["change"]); } Loading Loading
module/Oscar/src/Oscar/Utils/Config/ConfigurationLoader.php +4 −1 Original line number Diff line number Diff line Loading @@ -44,9 +44,12 @@ class ConfigurationLoader * @return array * @throws ConfigurationLoaderException */ public function load(): array public function load(bool $reset = false): array { static $merges; if ($reset === true) { $merges = null; } try { if (is_null($merges)) { //error_log(date("Y-m-d H:i:s v") . " Oscar settings loaded"); Loading
tests/Oscar/Connector/Oscar/Utils/Config/ConfigurationLoaderTest.php +7 −10 Original line number Diff line number Diff line Loading @@ -25,7 +25,7 @@ class ConfigurationLoaderTest extends TestCase { $file = __DIR__ . "/config01.yml"; $loader = new ConfigurationLoader([$file]); $settings = $loader->load(); $settings = $loader->load(true); $this->assertEquals(false, $settings["oscar"]["types"]["boolean_false"]); $this->assertEquals(true, $settings["oscar"]["types"]["boolean_true"]); $this->assertEquals(128, $settings["oscar"]["types"]["int_1"]); Loading @@ -35,20 +35,15 @@ class ConfigurationLoaderTest extends TestCase public function testWithParams() { $file1 = __DIR__ . "/config03_params.yml"; $params = __DIR__ . "/.env.example1"; $loader = new ConfigurationLoader([$file1]); $loader->env(__DIR__, '.env.example1'); $settings = $loader->load(); var_dump($settings); $settings = $loader->load(true); $this->assertEquals("Chaîne", $settings["oscar"]["parameters"]["chaînes"]["in_param_1"]); $this->assertEquals("Chaîne avec des guillemets", $settings["oscar"]["parameters"]["chaînes"]["in_param_2"]); $this->assertEquals('Chaîne avec des "guillemets"', $settings["oscar"]["parameters"]["chaînes"]["in_param_3"]); $this->assertEquals("Chaîne avec des guillemets", $settings["oscar"]["parameters"]["chaînes"]["in_param_4"]); $this->assertEquals("", $settings["oscar"]["parameters"]["chaînes"]["nowhere"]); $this->assertEquals("Dans YAML", $settings["oscar"]["parameters"]["chaînes"]["in_yaml"]); } Loading @@ -57,13 +52,15 @@ class ConfigurationLoaderTest extends TestCase $file1 = __DIR__ . "/config01.yml"; $file2 = __DIR__ . "/config01_merge.yml"; $loader = new ConfigurationLoader([$file1, $file2]); $settings = $loader->load(); $settings = $loader->load(true); $this->assertEquals(false, $settings["oscar"]["types"]["boolean_false"]); $this->assertEquals(true, $settings["oscar"]["types"]["boolean_true"]); $this->assertEquals(128, $settings["oscar"]["types"]["int_1"]); $this->assertEquals(-256, $settings["oscar"]["types"]["int_2"]); $this->assertEquals("config01_merge.yml", $settings["oscar"]["merged"]["value"]); $this->assertEquals("changed", $settings["oscar"]["merged"]["in"]["deep"]["change"]); // Le merge le "merge" pas (mécanique non-implémentées) // > Les clefs ne sont pas remplacées // $this->assertEquals("config01_merge.yml", $settings["oscar"]["merged"]["value"]); // $this->assertEquals("changed", $settings["oscar"]["merged"]["in"]["deep"]["change"]); } Loading