Wrapper for configuration arrays. Multiple configuration readers can be attached to allow loading configuration from files, database, etc.
Class declared in SYSPATH/classes/config.php on line 3.
Kohana_Config $_instanceSingleton static instance
object Config()
array $_readersConfiguration readers
Attach a configuration reader. By default, the reader will be added as
the first used reader. However, if the reader should be used only when
all other readers fail, use FALSE for the second parameter.
$config->attach($reader); // Try first
$config->attach($reader, FALSE); // Try last
Config_Reader
$reader
required - Config_Reader instanceboolean
$first
= bool TRUE - Add the reader as the first used object$thispublic function attach(Config_Reader $reader, $first = TRUE)
{
if ($first === TRUE)
{
// Place the log reader at the top of the stack
array_unshift($this->_readers, $reader);
}
else
{
// Place the reader at the bottom of the stack
$this->_readers[] = $reader;
}
return $this;
}
Copy one configuration group to all of the other readers.
$config->copy($name);
string
$group
required - Configuration group name$thispublic function copy($group)
{
// Load the configuration group
$config = $this->load($group);
foreach ($this->_readers as $reader)
{
if ($config instanceof $reader)
{
// Do not copy the config to the same group
continue;
}
// Load the configuration object
$object = $reader->load($group, array());
foreach ($config as $key => $value)
{
// Copy each value in the config
$object->offsetSet($key, $value);
}
}
return $this;
}
Detach a configuration reader.
$config->detach($reader);
Config_Reader
$reader
required - $source Config_Reader instance$thispublic function detach(Config_Reader $reader)
{
if (($key = array_search($reader, $this->_readers)) !== FALSE)
{
// Remove the writer
unset($this->_readers[$key]);
}
return $this;
}
Get the singleton instance of Config.
$config = Config::instance();
Configpublic static function instance()
{
if (Config::$_instance === NULL)
{
// Create a new instance
Config::$_instance = new Config;
}
return Config::$_instance;
}
Load a configuration group. Searches the readers in order until the group is found. If the group does not exist, an empty configuration array will be loaded using the first reader.
$array = $config->load($name);
string
$group
required - Configuration group nameConfig_Readerpublic function load($group)
{
foreach ($this->_readers as $reader)
{
if ($config = $reader->load($group))
{
// Found a reader for this configuration group
return $config;
}
}
// Reset the iterator
reset($this->_readers);
if ( ! is_object($config = current($this->_readers)))
{
throw new Kohana_Exception('No configuration readers attached');
}
// Load the reader as an empty array
return $config->load($group, array());
}