Le 11 août 09 à 11:58, Committo,Ergo:sum a écrit :
Se plaindre que "on" change encore ne me semble pas recevable,
"on" étant toi en l'occurrence,
Non mais c'est une blague ?
La fonction a été cassée 2 fois lors du process de developpement de la 2.0 :
- une première fois en étant sucrée au profit de evaluer_fond qui avait une autre API
puis après discussion, ralerie, débat et retour au support de l'api initiale (tout en permettant les extensions proposées),
- une seconde fois en imposant $contexte['fond'] comme argument prioritaire (j'ai rien dit et je me suis contenté de me prendre les bugs dans la figure dans mon coin, sans vraiment voir la raison de ce changement, au passsage).
Je ne suis pour rien dans ces changements intempestifs d'API qu'on se prend dans la figure à chaque fois, sans en voir ni comprendre la nécéssité *absolue* et *vitale* qui justifie de changer l'API et de passer notre temps à reprendre notre code pour suivre une spécification qui évolue au jour le jour.
En l'occurence, l'implémentation actuelle reposant sur la prise en compte prioritaire de
$contexte['fond']
comportait une lacune sécuritaire dans le cas d'un appel du type
recuperer_fond($fond,$_GET);
comme indiquée dans les commentaires.
Je n'ai donc pas modifié la fonction pour mon plaisir, mais simplement pour boucher un trou de sécurité potentiel.
Que tu prenne ce correctif comme pretexte pour casser encore l'API, revenir en arrière sur le choix de cette priorité et, plus fort encore, supprimer complètement la prise en compte de $contexte['fond'] qui est pourtant là depuis la version 1.9.2, cassant au passage tous les appels concernés me parait un peu dur.
et a contrario le fait qu'il a fallu
revenir autant de fois sur cette fonction prouve bien que cette ambiguité
est fondamentalement problématique.
Je ne te le fais pas dire. La version de départ marchait bien et était un bon compromis....
En la faisant sauter, on élimine la source
de ces problèmes récurrent, d'autant que je ne vois pas l'avantage de cette écriture.
Je pense qu'elle n'avait qu'une seule origine: la petite difficulté consistant à compiler à part
le paramètre "fond". Maintenant que ce code est écrit, cette licence n'a plus aucune raison d'être.
Je répète, cette fonction existait avant son utilisation par le compilateur, avec cette API, parce qu'elle correspond à un besoin.
La changer parce que le compilateur n'a plus besoin de cette partie est pour le moins cavalier.
Cédric