2010-10-29 5 views
0

J'installe des variables de configuration globale de la manière suivante:Comment accéder à l'information mondiale dynamique dans une fonction statique

$yaml = file_exists('config.yml') ? Spyc::YAMLLoad('config.yml') : array(); 

$defaults = array(
    'hostname' => 'localhost', 
    'base_uri' => '/wag/' 
); 

$config = array_merge($default, $yaml); 

J'aimerais maintenant définir une fonction base_url($https) qui retourne une URL de base. Le corps de la méthode peut être simplement:

return 'http' . ($https ? 's' : '') . '//' . $config['hostname'] . $config['base_uri']; 

Mais je ne sais pas comment accéder à ces variables par défaut après leur création. Comment ferais-je cela? Je serais également ouvert à trouver un autre moyen d'atteindre l'objectif final que je recherche (avoir une variable de configuration/constante ainsi que certaines fonctions utilitaires pour m'aider à synthétiser des valeurs basées sur ces données de configuration).

Répondre

1

Créez une classe de configuration, définissez des variables de classe et utilisez les méthodes get/set pour stocker et récupérer les paramètres.

Exemple:

class Config 
{ 
    private $_hostname = "localhost"; 
    private $_baseUri; 

    public function __construct($_hostname, $baseUri) 
    { 
     //initialise vars 
    } 

    public function getHostname() 
    { 
     return $this->_hostName; 
    } 

    public function setHostname($hostName) 
    { 
     $this->_hostName = $hostName; 
    } 
} 
Questions connexes