/** * Return description of configuration parameters * * This function caches its result so that it may be called * multiple times without performance overhead * * @returns array key=> * array('defaultValue'=>value, // if not present, * // the param is required * 'relativeTo'=>path, // for directories * 'validator'=>validator // name of validator to use) * @see configuration.example.php for more information */ protected static function getParameterDescription() { if (self::$parameterDescription === null) { self::$parameterDescription = FajrConfigOptions::getParameterDescription(); } return self::$parameterDescription; }
/** * Load configuration file, if it was not loaded previously. * * This means that second and subsequent calls attempt to load * the configuration again only if previous attempts have failed. * * Otherwise, cached configuration data is used. * * If the loading fails, isConfigured() will return false. * * @return void */ public static function load() { if (self::isConfigured()) { return; } $parameters = self::getParameterDescription(); $configurationFileName = self::getConfigurationFileName(); if (!file_exists($configurationFileName)) { // Leave fajr unconfigured, index.php will then show nice error message // to the user return; } // Don't suppress errors so parse errors are reported // TODO(anty): use yaml for configuration $result = (include $configurationFileName); if (!is_array($result)) { throw new Exception('Konfiguračný súbor nevrátil pole'); } $config = ConfigUtils::parseAndValidateConfiguration($parameters, $result); foreach ($config['AIS2.ServerList'] as $key => $server) { if ($key !== $server->getServerName()) { throw new Exception("Nesedí meno servera v konfiguracii AIS2.ServerList"); } } self::$config = $config; }