Kohana_Config

Wrapper for configuration arrays.

package
Kohana
author
Kohana Team
copyright
© 2009 Kohana Team
license
http://kohanaphp.com/license.html

Methods

public static instance ( )

Get the singleton instance of Kohana_Config.

Returns:
  • Kohana_Config
Source:
public static function instance()
{
	if (self::$_instance === NULL)
	{
		// Create a new instance
		self::$_instance = new self;
	}

	return self::$_instance;
}

public attach ( object $reader, boolean $first = true )

Attach a configuration reader.

Returns:
  • $this
Source:
public function attach(Kohana_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;
}

public detach ( object $reader )

Detaches a configuration reader.

Returns:
  • $this
Source:
public function detach(Kohana_Config_Reader $reader)
{
	if (($key = array_search($reader, $this->_readers)))
	{
		// Remove the writer
		unset($this->_readers[$key]);
	}

	return $this;
}

public load ( string $group )

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.

Returns:
  • object Kohana_Config_Reader
Source:
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());
}

public copy ( string $group )

Copy one configuration group to all of the other readers.

Returns:
  • $this
Source:
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;
}

final private __construct ( )

Source:
final private function __construct()
{
	// Enforce singleton behavior
}

final private __clone ( )

Source:
final private function __clone()
{
	// Enforce singleton behavior
}