Discussion: code etrange
Afficher un message
Vieux 27/07/2007, 17h05   #3
Bruno Desthuilliers
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: code etrange

Thief13 a écrit :
> Bonjour à tous !
>
> Bon, je suis en train de reprendre un appli derrière un autre
> devellopeur. Dans son code, je suis tombé sur ça :
>
> require(CONF_CHEMIN."langues/".constant("LANGUE_".strtoupper($_SESSION['langue'])));
>
> d'un autre coté, il définit les consantes LANGUE_FR, LANGUE_EN etc avec
> comme valeur le nom du fichier de langue.
>
> Bon, on m'a toujour dit qu'il ne fallais pas mettre des variable, et
> encore moin de type $_SESSION dans les require,


Ce genre de règle est pour ceux qui n'en comprennent pas (encore) les
raisons. Une fois que tu sais le pourquoi de la règle, tu sais aussi
quand et comment ne pas l'appliquer. Donc réfléchi à pourquoi on t'a dit
de ne pas utiliser de variables dans les requires, et tu n'aura plus à
te soucier de cette règle.

> alor je trouve ça un
> peut douteux.
>
> D'un autre coté, c'est dans le constant,
> et pas directement dans le
> require, de plus, la liste des constantes est fini et maitrisé, donc en
> cas de valeur erroné, il ne me semble pas que ça puisse mettre le bazzare.


> Qu'en pensez vous ?


Mmm... si la constante n'est pas définie, le chemin passé à require va
être un poil incomplet. Du point de vue sécurité, il n'y a probablement
pas grand risque (puisque constant() retournera NULL s'il n'y a pas de
constante correspondante), mais du point de vue robustesse, ça me paraît
un peu léger.

Perso, je commencerais par tester si la constante est définie, quite à
envoyer un message d'erreur ou à utiliser un défaut en cas de pépin.
Mais bon, ça dépend du contexte...

Mes deux centimes.
  Réponse avec citation
 
Page generated in 0,12458 seconds with 9 queries