The 'default' config for Configure class is now auto created on first use if not already created.

This commit is contained in:
ADmad 2011-09-18 00:00:39 +05:30
parent 0e5797d69d
commit 08026e5828
2 changed files with 23 additions and 1 deletions

View file

@ -287,6 +287,9 @@ class Configure {
*
* `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 @@ class Configure {
*/
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);

View file

@ -191,6 +191,20 @@ class ConfigureTest extends CakeTestCase {
$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
*