Permalink
Browse files

The 'default' config for Configure class is now auto created on first…

… use if not already created.
  • Loading branch information...
ADmad committed Sep 17, 2011
1 parent 0e5797d commit 08026e58289d8f249517a82ca1a66b7ed92c390a
Showing with 23 additions and 1 deletion.
  1. +9 −1 lib/Cake/Core/Configure.php
  2. +14 −0 lib/Cake/Test/Case/Core/ConfigureTest.php
@@ -287,6 +287,9 @@ public static function drop($name) {
*
* `Configure::load('setup', 'default');`
*
+ * If using `default` config and no reader has been configured for it yet,
+ * one will be automatically created using PhpReader
+ *
* @link http://book.cakephp.org/view/929/load
* @param string $key name of configuration resource to load.
* @param string $config Name of the configured reader to use to read the resource identified by $key.
@@ -296,7 +299,12 @@ public static function drop($name) {
*/
public static function load($key, $config = 'default', $merge = true) {
if (!isset(self::$_readers[$config])) {
- return false;
+ if ($config === 'default') {
+ App::uses('PhpReader', 'Configure');
+ self::$_readers[$config] = new PhpReader();
+ } else {
+ return false;
+ }
}
$values = self::$_readers[$config]->read($key);
@@ -191,6 +191,20 @@ public function testLoadExceptionOnNonExistantFile() {
$result = Configure::load('non_existing_configuration_file', 'test');
}
+/**
+ * test load method for default config creation
+ *
+ * @return void
+ */
+ public function testLoadDefaultConfig() {
+ try {
+ Configure::load('non_existing_configuration_file');
+ } catch (Exception $e) {
+ $result = Configure::configured('default');
+ $this->assertTrue($result);
+ }
+ }
+
/**
* test load with merging
*

0 comments on commit 08026e5

Please sign in to comment.