/**
*?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'];
????}
}
?>