/** * * @param string $name * @param bool $required */ public static function retrieve($name, $required = true) { $group = explode('.', $name, 2); $group = $group[0]; if (!isset(self::$configuration[$group])) { // Load the configuration group $defaultFolder = dirname(__FILE__) . '/config/'; if (self::$folder == null) { self::$folder = $defaultFolder; } $file = self::$folder . $group . '.php'; $defaultFile = $defaultFolder . $group . '.php'; if (!file_exists($file)) { // Try default folder if (!file_exists($defaultFile)) { if ($required === true) { throw new Exception("{$file} does not exists"); } else { return false; } } else { $file = $defaultFile; } } include $file; if (!isset($config) || empty($config)) { throw new Exception("Could not find config array in {$file}"); } self::$configuration[$group] = $config; } $value = self::retrieveKey(self::$configuration, $name); if ($required === true && ($value === NULL || empty($value))) { throw new Exception("Could not find {$name} in {$file}"); } return $value; }