constante ou variable

constante ou variable - PHP - Programmation

Marsh Posté le 29-11-2007 à 14:17:26    

salut,
 
j'ai commencé le dev d'un site en php multilingue. jusque là pas de souci.
le truc c'est que j'ai utilisé des variables pour stocker mon dictionnaire.
 
j'ai donc un fichier fr.inc.php qui se présente :  
 

Code :
  1. $LANG['hello'] = 'bonjour';
  2. $LANG['bye'] = 'au revoir';
  3. etc.


 
un fichier en.inc.php qui se présente pareil avec les meme noms bien sur et les traductions anglaises, et ainsi de suite.
en me documentant par la suite sur les sites multilnigue, j'ai remarqué qu'on avait tendance à plutot employer des constantes (define('HELLO', 'bonjour'))
 
donc la question que je me pose c'est qu'est ce qui est le plus judicieux : continuer avec mes variables ou bien tout recommencer avec des constantes ? niveau performance, l'utilisation de variable aura t-elle un impact ?  
 
merci  :jap:  
 


---------------
J'écoute FIP sur le net !
Reply

Marsh Posté le 29-11-2007 à 14:17:26   

Reply

Marsh Posté le 29-11-2007 à 16:20:51    

bonne question, la réponse m'intéresse aussi, donc up.
 
mais je sais que techniquement la meilleur solution pour les traductions est d'utiliser gettext : http://www.manuelphp.com/php/function.gettext.php
C'est un outil générique utiliser par plein d'apllication multilingue.


---------------
Du tofu en Alsace : www.tofuhong.com
Reply

Marsh Posté le 29-11-2007 à 16:31:21    

Hello,
ça dépend parfois du contexte ... Perso je me suis limité à un tableau (comme $LANG['hello']) mais il faut savoir que nativement, cette variable n'a pas une portée globale : pour utiliser ce tableau dans une fonction, il faudra le passer en paramètre ou le définir comme global. Mais pour le peu doint j'ai eu besoin, passer juste la phrase en paramètre à ma fonction a suffi.
 
Je ne vois pas en quoi, autrement que cette histoire de portée, l'utilisation des define serait plus judicieux, si qqn a un retour d'expérience je suis aussi preneur.


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 29-11-2007 à 18:03:49    

Pour savoir si tu peux utiliser des constantes, il faut que tu te poses deux questions :
1) Est ce que tu es certain de ne jamais avoir à changer de langue entre le chargement de la langue et la fin du traitement?
2) Est ce que tu es sur que tu n'auras jamais de fonction ou de classe qui auront le même nom qu'une des constantes?
 
Si la réponse est oui dans les deux cas alors vas y, utilise des contantes, sinon, il vaut mieux passer par autre chose.
 
Moi personellement, pour gérer ça, j'ai fait un singleton ce qui fait que j'ai accès aux traductions depuis n'importe où sans les passer en paramètres ni en les mettant dans la section globale et sans non plus avoir besoin de les recharger à chaque fois que j'ai besoin d'une traduction.


Message édité par omega2 le 29-11-2007 à 18:04:09
Reply

Marsh Posté le 01-12-2007 à 10:48:04    

merci pour les infos et conseils.
je pense que je vais rester sur les variables car ca fonctionne et ca ne me limite pas dans mon developpement.  
 
 :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed