$_GET['action']="xxx"

Le
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?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Antoine ROUCHET
Le #44294
"Mihamina (R12y) Rakotomandimby" message news:
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
Le #44295
Bonjour,


Bonsoir

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
Le #44293
Le 20/06/2007 23:23, Francois Girault répondait à Mihamina R12y :

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.

De mon point de vue, je dirais que ce n'est pas une bonne pratique, pour
ces 2 raisons :

[...]

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.


Thierry B.
Le #43849
--{ Francois Girault a plopé ceci: }--

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)

Francois Girault
Le #43845
Le 20/06/2007 23:23, Francois Girault répondait à Mihamina R12y :
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
Le #43413

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 ».

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. ;-)



Publicité
Poster une réponse
Anonyme