$les paramètres de tableau ou de la Config de Classe pour stocker les paramètres du projet?
Comment dois-je stocker les paramètres pour le projet?
Quel est le meilleur - à l'utilisation d'un $settings
tableau avec tous mes paramètres:
$settings['max_photos'] = 30;
//...
ou créer un singleton Config
classe avec tous les paramètres qu'il contient?
Class Config {
private $max_photos = 30;
//...
}
Tout de bons exemples?
OriginalL'auteur ideea | 2010-07-17
Vous devez vous connecter pour publier un commentaire.
Je pense qu'il est préférable d'utiliser des constantes pour la configuration. Par exemple à l'aide des constantes de classe:
Si vous avez PHP 5.3, vous pouvez également définir comme des constantes globales:
Mais je pense que c'est beaucoup moins propre et simple.
Évidemment, cela ne fonctionne que tant que vous êtes seulement de stocker des constantes, c'est à dire scalaire, non-valeurs d'expression. Si votre configuration contient des tableaux par exemple, cela ne fonctionne plus. Dans ce cas, je voudrais utiliser une Config de classe public static propriétés:
Ce dernier est très similaire à la
$config
tableau d'approche, mais a l'avantage (ou peut-il être un inconvénient?) que la classe est accessible de partout, y compris des fonctions et des classes, tandis que le tableau est accessible uniquement dans l'espace mondial, sauf si vous l'importez dans des fonctions/classes à l'aide d'global $config;
.merci, oui, j'en ai des tableaux trop: $settings['langues'] = array( 'fr' => 'anglais', 'rus' => 'По-русски', 'lat' => 'Latviski' ); $settings['site_title'] = _("titre du Site"); $settings['default_lng'] = 'fr'; /** * Мин. количество гололов / $settings['min_votes'] = 3; /* * Кол-во пользователей, после которого регистрация только по приглашениям. / $settings['invite'] = 100000;//25000; /* * Время истечения приглашения */ $settings['invite_timeout'] = 86400 * 3; je pense que, cette variante est mieux, merci à vous tous pour l'aide!
OriginalL'auteur NikiC
Les deux marchent bien, le faire selon ce que vous sentez le plus à l'aise avec.
OriginalL'auteur Toby Allen
La meilleure façon est de stocker vos réglages dans un fichier .
et de les manipuler ce fichier déclarer une classe qui effectue des opérations sur fichier
OriginalL'auteur Sagar Varpe
Si vous allez pour le tableau d'approche, vous pouvez utiliser des littéraux de tableau pour un peu plus lisible le code:
OriginalL'auteur Eric
Mes deux cents: Utiliser les deux. La plupart des paramètres de configuration à faire dans un tableau de variables globales. Config de données doit être accessible à partir d'applications diverses parties, et c'est ce que les variables globales sont pour. Et maintenir le tout ensemble dans un tableau qui est le plus sensible. Un tableau peut être étendu, par exemple, certaines options définies dans un config.php et le reste de lire à partir d'une config.ini par exemple.
Mais il est aussi un lieu pour les CONSTANTES. La fine ligne de tirage, si une option est vraiment quelque chose qui PEUT changer au cours de l'exécution de l'application, ou si c'est plus un fixe/valeur magique. Si, une fois mis en place, vous ne devez pas modifier un paramètre d'application (ou le rendu peut échouer), cette option ne devrait pas être dans la matrice, mais sementically fixe comme constante. (C'est une règle d'interprétation générale, mais m'a bien servi.)
OriginalL'auteur mario
Si les paramètres du projet est trop lourd, alors le fichier xml(c'est mieux) est une bonne et une classe dédiée pour les paramètres est aussi bonne.
Si les paramètres du projet est petit, alors la matrice est meilleur, il est très rapide et pas d'I/O question connexe se pose.
Même, vous pouvez utiliser une base de données (plus lent et auth question).
OriginalL'auteur Sadat
J'ai tendance à mettre les valeurs de configuration qui sont uniquement accessibles à l'échelle mondiale dans un tableau de config et de définir les valeurs qui sont accessibles de n'importe où. Par exemple:
inc/config.php
inc/init.php
somefile.php
Garder à l'esprit cet exemple est dépouillé de démontrer une idée.
OriginalL'auteur J.Money