Discussion:
$_GET['action']="xxx"
(trop ancien pour répondre)
Mihamina (R12y) Rakotomandimby
2007-06-20 16:40:39 UTC
Permalink
Bonjour,

Pour des raisons de compatibilité de mon code et de celui de mon collègue,
on a besoin de faire un $_GET['action']="xxx".

Est-ce une mauvaise pratique?
Antoine ROUCHET
2007-06-20 21:23:33 UTC
Permalink
Post by Mihamina (R12y) Rakotomandimby
Bonjour,
Pour des raisons de compatibilité de mon code et de celui de mon collègue,
on a besoin de faire un $_GET['action']="xxx".
Est-ce une mauvaise pratique?
Bonsoir,

Si ça n'est que le contenu du champ "action" de la requête GET sera perdu ça
n'a rien de problématique. Mais bon un tel besoin n'est pas signe d'un code
très optimal, si je peux me permettre :-)

Antoine.
Francois Girault
2007-06-20 21:23:33 UTC
Permalink
Post by Mihamina (R12y) Rakotomandimby
Bonjour,
Bonsoir
Post by Mihamina (R12y) Rakotomandimby
Pour des raisons de compatibilité de mon code et de celui de mon collègue,
on a besoin de faire un $_GET['action']="xxx".
Est-ce une mauvaise pratique?
De mon point de vue, je dirais que ce n'est pas une bonne pratique, pour
ces 2 raisons :

1) Ce qui est dans $_GET vient de la requête. S'il faut "écrire" dedans,
remanier l'uri, autant confier le boulot à mod_rewrite.

2) $_GET étant une variable globale, la modifier pourrait entrainer des
effets de bords dans des composants qui l'utilisent avec confiance (ou
pas). Cela dépend si vous maitrisez l'ensemble du code de l'application
et de ses dépendances (sortez le grep ;) ).

Mais si ça vous évite X mois de ré-écriture du code ... ;)
--
FG
Olivier Miakinen
2007-06-20 21:54:11 UTC
Permalink
Post by Francois Girault
Post by Mihamina (R12y) Rakotomandimby
Pour des raisons de compatibilité de mon code et de celui de mon collègue,
on a besoin de faire un $_GET['action']="xxx".
Est-ce une mauvaise pratique?
Même si ce n'est pas la meilleure pratique du point de vue de la
lisibilité, je dirais « pourquoi pas ». Déjà, il n'y a pas de raison
que ça ne fonctionne pas. Malgré tout, je te conseillerais de :
1) modifier $_REQUEST en même temps que $_GET, des fois que tu changes
l'endroit où c'est utilisé en oubliant que le $_GET était positionné
artificiellement ;
2) mettre un gros commentaire explicatif, à la fois à l'endroit où tu le
positionnes et à l'endroit où tu l'utilises.
Post by Francois Girault
De mon point de vue, je dirais que ce n'est pas une bonne pratique, pour
[...]
2) $_GET étant une variable globale, la modifier pourrait entrainer des
effets de bords dans des composants qui l'utilisent avec confiance (ou
pas).
Ça, ça me semble une mauvaise raison pour ne pas le faire. Aucun
composant ne devrait utiliser $_GET « avec confiance ». Mais il est
très possible que j'aie mal compris ta remarque auquel cas je te
prie par avance de m'excuser.
Francois Girault
2007-06-21 18:44:44 UTC
Permalink
Post by Olivier Miakinen
Post by Francois Girault
2) $_GET étant une variable globale, la modifier pourrait entrainer des
effets de bords dans des composants qui l'utilisent avec confiance (ou
pas).
Ça, ça me semble une mauvaise raison pour ne pas le faire. Aucun
composant ne devrait utiliser $_GET « avec confiance ». Mais il est
très possible que j'aie mal compris ta remarque auquel cas je te
prie par avance de m'excuser.
euh vous avez surtout oublié la phrase qui suivait : "Cela dépend si
vous maitrisez l'ensemble du code de l'application et de ses dépendances".

Je voulais dire : attention si dans les dépendances se trouve un truc
mal fichu, que ça tombe en marche au premier abord, qu'on a pas audité
le code en question ...

Les globales en écriture, c'est mal (c) et à grande échelle les accès en
écriture à de telles variables requièrent une encapsulation.

Mon point de vue est strictement personnel, très dépendant de mon
expérience sur des progiciels de bonne envergure, pas la peine de
s'excuser :)
--
FG
Olivier Miakinen
2007-06-21 19:54:35 UTC
Permalink
Post by Francois Girault
Post by Olivier Miakinen
Post by Francois Girault
2) $_GET étant une variable globale, la modifier pourrait entrainer des
effets de bords dans des composants qui l'utilisent avec confiance (ou
pas).
Ça, ça me semble une mauvaise raison pour ne pas le faire. Aucun
composant ne devrait utiliser $_GET « avec confiance ». Mais il est
très possible que j'aie mal compris ta remarque auquel cas je te
prie par avance de m'excuser.
euh vous avez surtout oublié la phrase qui suivait : "Cela dépend si
vous maitrisez l'ensemble du code de l'application et de ses dépendances".
Ah oui, et surtout je suis passé à côté du fait que le point important
était « variable globale » plutôt que « données issues du formulaire ».
Post by Francois Girault
Les globales en écriture, c'est mal (c) et à grande échelle les accès en
écriture à de telles variables requièrent une encapsulation.
Ça y est, maintenant j'ai compris. Merci. ;-)

Thierry B.
2007-06-21 11:37:34 UTC
Permalink
--{ Francois Girault a plopé ceci: }--
Post by Francois Girault
Mais si ça vous évite X mois de ré-écriture du code ... ;)
Tout ça sent le vécu... Téléportation :)
--
- Le monde appartient à ceux dont les ouvriers se lèvent tôt. (Coluche)
Continuer la lecture sur narkive:
Loading...