diff --git a/lib/Cake/Core/Configure.php b/lib/Cake/Core/Configure.php index 2772eb084..67cabfc50 100644 --- a/lib/Cake/Core/Configure.php +++ b/lib/Cake/Core/Configure.php @@ -312,7 +312,7 @@ class Configure { $keys = array_keys($values); foreach ($keys as $key) { if (($c = self::read($key)) && is_array($values[$key]) && is_array($c)) { - $values[$key] = array_merge_recursive($c, $values[$key]); + $values[$key] = Set::merge($c, $values[$key]); } } } diff --git a/lib/Cake/Test/Case/Core/ConfigureTest.php b/lib/Cake/Test/Case/Core/ConfigureTest.php index 746412fdf..5e94b5749 100644 --- a/lib/Cake/Test/Case/Core/ConfigureTest.php +++ b/lib/Cake/Test/Case/Core/ConfigureTest.php @@ -224,6 +224,8 @@ class ConfigureTest extends CakeTestCase { $this->assertEquals('value2', Configure::read('Read')); $this->assertEquals('buried2', Configure::read('Deep.Second.SecondDeepest')); $this->assertEquals('buried', Configure::read('Deep.Deeper.Deepest')); + $this->assertEquals('Overwrite', Configure::read('TestAcl.classname')); + $this->assertEquals('one', Configure::read('TestAcl.custom')); } /** diff --git a/lib/Cake/Test/test_app/Config/var_test.php b/lib/Cake/Test/test_app/Config/var_test.php index e0f3ae2a1..44c345563 100644 --- a/lib/Cake/Test/test_app/Config/var_test.php +++ b/lib/Cake/Test/test_app/Config/var_test.php @@ -5,5 +5,8 @@ $config = array( 'Deeper' => array( 'Deepest' => 'buried' ) + ), + 'TestAcl' => array( + 'classname' => 'Original' ) -); \ No newline at end of file +); diff --git a/lib/Cake/Test/test_app/Config/var_test2.php b/lib/Cake/Test/test_app/Config/var_test2.php index 33345b4ec..745b75dbc 100644 --- a/lib/Cake/Test/test_app/Config/var_test2.php +++ b/lib/Cake/Test/test_app/Config/var_test2.php @@ -5,5 +5,9 @@ $config = array( 'Second' => array( 'SecondDeepest' => 'buried2' ) + ), + 'TestAcl' => array( + 'classname' => 'Overwrite', + 'custom' => 'one' ) -); \ No newline at end of file +);