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$this
public 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$this
public 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$this
public 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();
Config
public 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_Reader
public 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());
}