/**
*?Settings?Library
*
*?Used?to?get?settings?from?a?config?file.?Supports?PHP,?INI,?XML?and?YAML?config?files
*
*?@package?settings
*?@author?Dennis?Pallett
*?@link?http://phpit.net/article/create-settings-class-php/
*?@license?http://www.opensource.org/licenses/mit-license.php?MIT?License
*/

Class?Settings?{
????var?
$_settings?=?array();

????function?
get($var)?{
????????
$var?=?explode('.',?$var);

????????
$result?=?$this->_settings;
????????foreach?(
$var?as?$key)?{
????????????if?(!isset(
$result[$key]))?{?return?false;?}

????????????
$result?=?$result[$key];
????????}

????????return?
$result;
????}

????function?
load()?{
????????
trigger_error?('Not?yet?implemented',?E_USER_ERROR);
????}

}

Class?
Settings_PHP?Extends?Settings?{
????function?
load?($file)?{
????????if?(
file_exists($file)?==?false)?{?return?false;?}

????????
//?Include?file
????????
include?($file);
????????unset(
$file);


????????
//?Get?declared?variables
????????
$vars?=?get_defined_vars();

????????
//?Add?to?settings?array
????????
foreach?($vars?as?$key?=>?$val)?{
????????????if?(
$key?==?'this')?continue;

????????????
$this->_settings[$key]?=?$val;
????????}

????}
}

Class?
Settings_INI?Extends?Settings?{
????function?
load?($file)?{
????????if?(
file_exists($file)?==?false)?{?return?false;?}
????????
$this->_settings?=?parse_ini_file?($file,?true);
????}
}

Class?
Settings_YAML?Extends?Settings?{
????function?
load?($file)?{
????????if?(
file_exists($file)?==?false)?{?return?false;?}

????????include?(
'spyc.php');
????????
$this->_settings?=?Spyc::YAMLLoad($file);
????}
}

Class?
Settings_XML?Extends?Settings?{
????function?
load?($file)?{
????????if?(
file_exists($file)?==?false)?{?return?false;?}

????????include?(
'xmllib.php');
????????
$xml?=?file_get_contents($file);
????????
$data?=?XML_unserialize($xml);

????????
$this->_settings?=?$data['settings'];
????}
}

?>