configuration = array(); } // members private $configuration; public static function setConfiguration($configurationArray) { $conf = self::getInstance(); $conf->configuration = array_merge ($conf->configuration, $configurationArray); if ($autoloader = $conf->getConfig("autoloader")) { spl_autoload_register($autoloader); } } function getConfig($key, $default = null){ if (array_key_exists($key, $this->configuration)) return $this->configuration[$key]; else { if ($default) return $default; } return null; } function requireConfig($key){ if (($value = $this->getConfig($key)) == null) throw new Exception("Configuration for $key missing"); return $value; } // sets path of calling module as app_path static function setAppPath() { $call_stack = debug_backtrace(); $file = $call_stack[0]['file']; $path = substr($file, 0, strrpos($file, "/")); $path = substr($file, 0, strrpos($path, "/")); self::getInstance()->configuration["app_path"] = $path; } } ?>