Example #1
0
 /**
  * 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;
 }
Example #2
0
 /**
  * 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;
 }