[PHP5] Classe che legge un file di configurazione

Salve a tutti, per una applicazione ho scritto un file di configurazione del tipo:

/***********************************************************
 * DEFAULT CONFIGURATION
 ************************************************************/

/**
 * Multiple configs allow you tu quickly switch among configs, fr example you may want to enable debug without editing this file
 */
$config['default'] = array();

$config['default']['autoload'] = array();


$config['default']['nice_urls'] = 1;


$config['default']['controllers_path'] = INSTALLATION_PATH."/controllers";


$config['default']['actions_path'] = INSTALLATION_PATH."/actions";

L'array config a sua volta contiene altri array per permettermi di usare uno stesso file di configurazione per diverse configurazioni.

Naturalmente ho bisogno di accedere a questo array da più parti dell'applicazione. Per questo ho scritto una classe Configuration... ma non funziona.

Vi posto ugualmente il codice

class Configuration {

   function __construct() {
      
      
      
   }
   
   function loadConfig($name)
   {
      if (!defined("__CONFIG__"))
         require_once(INSTALLATION_PATH."/config/config.php");
         
      if (!isset($config[$name])) {
         throw new configException("The requested configuration profile ($name) was not found");

      foreach (array_keys($config[$name]) as $key)
      {
         $this->$key = $config[$name][$key];
      }
   }
   
   function getVar($var_name)
   {
      return $this->$var_name;
   }
}
}

Ciò che vorrei ottenere è la seguente cosa:

QUando chiamo il metodo loadConfig(nomeconfig), gli attributi della classe Configuration dovrebbero popolarsi con le chiavi dell'array di configurazione che carico

Così se volessi ad esempio ottenere il valore della variabile "nice_urls" potrei scrivere

$c = new Configuration();
$c->loadConfig("default");
$nice_urls_value = $c->nice_urls;

L'errore che ottengo è dato dalla esception: nonstante io abbia definito il profilo di configurazione "default" esso non viene riconosciuto e la classe lancia l'eccezione  :'(

Grazie a tutti in anticipo per la lettura

inviato 7 anni fa
fatmatt
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda