nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Re: j'apprends php 1

Von: Olivier Masson (sisemen@laposte.net) [Profil]
Datum: 06.11.2009 19:43
Message-ID: <4af467b4$0$4939$426a34cc@news.free.fr>
Newsgroup: fr.comp.lang.php
Bruno Desthuilliers a écrit :

> En PHP, c'est d'un intérêt limité (j'ai pas
dit "inutile", hein...). Ca
> a plus de sens dans un langage objet (un vrai, je veux dire), et - en
> matière de développement web, avec un modèle
d'exécution basé sur un
> long running process.
>

Pourtant PHP5 est censé être pas mal objet non (et le 6
carrément donc) ?
Je doute que ce soit inutile tout de même (oui, tu l'as pas dit, ok.)


>>
>> function changeQuery($add=array(),$del=array()) {
>>   parse_str(urldecode($_SERVER['QUERY_STRING']),$output);
>
> 1/ t'a pas déclaré ni initialisé $output
avant.
>

exact mais ça l'est en fait.

> 2/ et si je veux travailler sur une autre url ? (ou, plus exactement, la
> querystring d'une autre url).

Ben je veux pas :)
Comme je l'ai dit, c'est adapté à mon contexte.
Et j'en profite pour indiquer un argument qui ne me convainc pas dans la
POO : c'est extensible, réutilisable...
Super ! Mais qd j'ai :
1/ des délais à tenir,
2/ des fonctions qui ne me serviront plus ou qui ne me serviront jamais
autrement,
je ne vois nullement l'intérêt de perdre du temps à
rendre tout
parfaitement adaptable à tout contexte (c'est aussi valable pour du dev
non objet d'ailleurs.)


>
>>   if (count($del))
>
> Si $del est un tableau vide, la boucle foreach ne sera de toutes
façons
> pas exécutée. Donc le test est inutile.
>

Ben non : Invalid argument supplied for foreach().
Fonctionne normalement avec ma condition inutile.

>>     foreach ($del as $value) {
>
> ce sont plutôt des clés, non ?-)

C'est vrai que ça fait couillon et peut nuire à la
compréhension... mais
c'est comme ça (je vais qd même pas faire un flip juste pour
pouvoir
lire les key !).

>
>>       if (isset($output[$value])) unset($output[$value]);
>
> J'aime pas les conditionnelles incomplètes:
>
>        if (isset($output[$value])) {
>           unset($output[$value]);
>        }
>

Je ne vois pas en quoi c'est incomplet. A mon avis, question de style.
En tout cas, je fais toujours comme ça quand je sais qu'il n'y aura rien
de plus après la condition.
JE SAIS que ça peut ne pas plaire, mais les accolades de partout,
ça me
gonfle et je ne trouve pas ça DU TOUT plus lisible.

A l'inverse, les ($a==='prout')?'do_this':(($b==='crotte')?'youpi':'piyou'))
ça m'insupporte.

Il y a aussi une question de gout. Y'en a qui mettent des switch dès la
moindre condition, y'en a (y'en a ?) qui aiment les endif, etc.

> le jour où tu veux ajouter un log, un trace ou quoi ou qu'est-ce, au
> moins tu risques pas de manger une fermeture de bloc au passage...
>
>>     }
>
>>   $result = array_merge($output,$add);
>
> Attention, il est parfaitement valide d'avoir plusieurs fois le même
> paramètre dans une querystring (paramètre
multivalué). Avec array_merge,
>  tu aura un remplacement pur et simple.

Alors ça, c'est une TRES BONNE remarque même si dans ce que tu
cites ça
ne pose nullement problème.
En effet, des index sont ajoutés aux queries (si j'ai
?nom[]=bob&nom[]=tom, j'obtiens ?nom[0]=bob&nom[1]=tom).
Mais ça coince pour le del car le unset n'est plus bon.

>
>>   return http_build_query($result, '', '&amp;');
>> }
>
> Manque quand même un truc : là tu renvoie une
querystring, pas une URL
> complète.

Ah ouais ça change tout et puis c'est balèze de reconstruire une
url !
:) (et en fait, c'est fait dans mes fonctions)

[ Auf dieses Posting antworten ]

Antworten