[Résolu] comment "externaliser" les paramètres - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [Résolu] comment "externaliser" les paramètres (/showthread.php?tid=4858) Pages :
1
2
|
[Résolu] comment "externaliser" les paramètres - Ter Rowan - 31-05-2010 bonjour voilà, j'ai une classe qui possède des données statiques paramétrant les calculs Code PHP :
mais j'aimerais sortir du code de la classe les données (les dits tableaux), afin d'avoir d'un coté le code et de l autre le paramétrage, simple et centralisé j'ai essayé deux trucs mais aucune ne marche : include(REP_DONNEES.'refCoutEnergie.php'); à la place de la déclaration ou la méthode des "include return" Code PHP :
donc je fais appel a vous, comment "sortez" vous le paramétrage ? RE: comment "externaliser" les paramètres - Sephi-Chan - 31-05-2010 Ça fait l'objet d'un article du Wiki : Où mettre les variables de configuration. Peut-être y trouveras-tu ton bonheur ! Je pencherais pour un fichier JSON, je n'ai pas trouvé de défaut à cette technique. Sephi-Chan RE: comment "externaliser" les paramètres - Shudrum - 31-05-2010 Personnellement, je gère tous mes paramètres en globaux. Pour ce qui est de ton idée de classe, je te conseil de passer simplement par un héritage : Code PHP :
Pour ce qui est du return include, c'est une bonne idée, mais tu ne peux l'appeller directement. Tu dois mettre dans ta classe, lors de la construction : Code PHP :
RE: comment "externaliser" les paramètres - Allwise - 31-05-2010 Étant donné que ce sont là des paramètres, tu pourrais les donner en argument au constructeur de la classe, sous forme de tableau ou d'objet. Sinon, tu peux aussi admettre un argument $config_file, qui taperait vers un fichier externe .php, ou .ini ( cf parse_ini_file ) qui contiendrait les datas. Il suffirait alors d'instancier la classe en passant le chemin vers ce fichier et zou le tout serait chargé. Ton include ne peut pas fonctionner, un include c'est comme un copier / coller d'un fichier dans un autre. Il faudrait soit que tu le mettes avant la déclaration de ta classe, soit au sein d'une méthode de ta classe. Mais je trouve la solution du .ini plus sexy RE: comment "externaliser" les paramètres - Shudrum - 31-05-2010 (31-05-2010, 10:59 PM)Allwise a écrit : Ton include ne peut pas fonctionner, un include c'est comme un copier / coller d'un fichier dans un autre. Nonon, on peut bien appeler un include retournant un résultat précis. RE: comment "externaliser" les paramètres - Allwise - 31-05-2010 Ah oui effectivement, au temps pour moi. Une pratique que j'avais jamais vu autre part que dans la doc :respect: RE: comment "externaliser" les paramètres - Ter Rowan - 01-06-2010 merci pour vos premières réponses alors Shudrum, l'héritage, je n'aime pas car si j'ai des paramètres dans 50 classes différentes, elles mêmes avec déjà un héritage structuré, ça me casse tout et surtout c'est tout aussi bordélique et "inaccessible" que dans les classes elles mêmes Allwise, ce sont des données statiques donc lors de la constuction des classes, celui qui instancie n'a pas a se soucier de ces informations, ni même où sont stockés les éléments. Je n'utiliserais donc pas la méthode Sephi, pour le wiki, ben justement j'étais parti sur une solution "légère" avec le return include cependant mon problème vient du côté statiquedes données que je souhaite stocker est ce que finalement (quelle que soit la source array xml, json, etc...) je ne dois pas déclarer mes variables static à null, et dans le constructeur faire un truc du genre if ( NULL === self::$leParam) self::$leParam = lafonctionquivabien(avec l'identifiant qui va bien); RE: comment "externaliser" les paramètres - Shudrum - 01-06-2010 Je ne comprend pas ce que tu entends pas "inaccessible". Car un fichier ne contenant que des variables avec en plus une ligne pour ouvrir la classe, je ne vois pas en quoi cela fait bordélique. De plus, j'avais zappé ton envie d'avoir des statics, car l'on peut garder les classe citées ci-dessus sans avoir à hériter des paramètres : Code PHP :
RE: comment "externaliser" les paramètres - Ter Rowan - 01-06-2010 ah c'est vrai que comme ça (on n'est plus dans l'héritage), c'est pas mal (et assez simple à lire qui plus est) Ca me réglerait bien quelques problèmes que j'envisageais Vous en pensez quoi vous autres ? RE: comment "externaliser" les paramètres - Anthor - 01-06-2010 Je préfère la solution que tu donnes avant, couplé avec un argument dans le constructor. C'est pas plus long et ça permet de surcharger les paramètres. Si besoin d'un exemple, je peux en donner un. |