2010-11-18 15 views
5

Je suis en train d'écrire mes premiers modèles de base de MVC en PHP. Je sais que les variables globales sont mauvaises, et je sais aussi que je ne veux pas que toutes mes classes aient accès à toutes mes variables de configuration.Correct façon de gérer la variable de configuration dans la configuration MVC (PHP)

J'ai un fichier settings.php dans lequel je voudrais définir un tas de constantes, comme mes informations de connexion db, informations de structure de répertoire, adresses e-mail et ainsi de suite. Ce sera un emplacement centralisé qui contient toutes mes informations importantes.

Quelle est la meilleure façon d'implémenter une classe config afin que chacune de mes classes de base pour mon contrôleur et mon modèle aient uniquement accès aux variables de configuration dont elles ont besoin? Par exemple, ma classe de base de modèle devrait avoir accès aux informations de connexion par db. Fondamentalement, je demande simplement comment tout le monde lance sa propre configuration MVC gère les informations de configuration sans déclarer les variables globales, comme nous l'avions l'habitude de revenir dans les jours procéduraux.

Merci.

+0

Cela s'appelle PMVC. La variable globale qui évite le mème est aussi un peu absurde si elle est généralisée. – mario

+0

Ah homme pas de bonnes réponses :( –

Répondre

0

J'ai lancé ma propre configuration MVC. (Toujours aller fort, peut-être ouvrir le source). La façon dont je le fais est d'avoir un script init qui passe toutes ces constantes à une classe de contrôle.

La classe de contrôle est un singleton. Ainsi, chaque fois qu'une autre classe a besoin d'y accéder, elle obtient simplement l'instance existante de la classe de contrôle et toutes les variables sont disponibles.

2

Vous obtiendrez un tas de réponses à ce sujet car il se résume à la préférence.

Personnellement, ive a utilisé un tableau de configuration. Exemple:

$conf['db']['username'] = "username"; 
$conf['db']['password'] = "password"; 

Ensuite, il suffit de passer par les pièces dont vous avez besoin pour aller là où elles doivent aller.