GBlog -Everything is possible

Jeudi 21 Août 2003

[Php] - Lettre au PHPère Nöel.

Cher PHPapa Nöel,

Comme tu le sais, j'ai été tres sage et comme Ganf qui à donné ses souhaits pour CSS je t'écris mes dolleances concernant le PHP.

Magics Quotes.

C'est simple, virer ces options de php qui ne servent à rien si ce n'est à nous compliquer la vie en devant bidouiller pour geré correctement les magic_quotes.

Alors vous allez me dire que les debutants, cela les arrange bien car cela evite qu'ils ouvrent des failles beantes en SQL injections, mais les debutants ils font aussi les failles d'includes sur des valeurs passées via GET, alors une faille de plus, une de moins, aucune difference.

Short Open Tags.

Encore un truc inutile qui m'embete plus qu'autre chose quand je fais du XML, alors qu'il suffirait de desactiver cette option et d'apprendre à utiliser <?php ?> ce qui n'est pas plus dur (3 lettres) que <? ?>.

Nettoyage des fonctions.

PHP à un aventage enorme, il y a souvent plusieurs fonctions pour le même boulot (mysql_num_rows()|mysql_numrows(), join()|implode()), ou alors l'on peut facilement changer l'ordre des arguments comme avec implode().

De plus les noms des fonctions sont souvent chaotiques, pourquoi presque toutes les fonctions de gestion de tableaux sont elles prefixées de array_ alors qu'ils en reste quelques une qui n'ont cette chance ?

Pour finir l'ordre des arguments reste lui aussi chaotiques, dans la fonction strtr() la chaine passée en entrée que l'on recupere en sortie est en premiere position alors que pour str_replace() le sujet se trouve en dernier argument.

Typage.

L'auto typage de PHP est formidable, à vrai dire, je ne m'en sert presque jamais et il me pose plus souvent problème qu'il ne me rend service, pourquoi pas une option pour le desactiver dans le script ?

Sessions.

Les sessions PHP, le truc attendu par plein de Geek enragés comme la solution à de multiples problèmes, et Hô miracle, les voici enfin depuis Php4, et Hô deception... En clair, je me fais encore mes sessions à la main telement je ne suis pas satisfait du systeme de sessions natif.

Ce qui me gene le plus dans ce support c'est que si l'on n'a pas acces au php.ini, .htaccess ou ini_set(), l'on ne peux strictement rien reglé comme la durée de vie d'une session, l'utilisation ou non de cookie, le fonctionement du trans_sid, bref rien n'est réglable alors qu'une simple fonction, voir même inclue dans session_start() pourait permetre ses réglages,

session_start(str name,int timeout,bool usecookie,bool rewrite_url_forms,str separateur);

// Exemple de session seulement avec cookie de 30 minutes.
session_start('PHPSESSID',60*30,true,false);

D'autre part, esseyez de faire validé au W3C avec les sessions php c'est la mort assurée car php place le champs input hidden qui contient l'id de session juste après la balise <form> alors que ce champs devrait se situer dans une balise de type bloc.

Je reviens sur l'option de désactivation de l'id en get, au lieu de mal paraphraser Ganf, je vous laisse lire cette article de Ganf sur les id de session.

Des constantes tableaux.

J'aime à definir enormement de constantes pour mes scripts et là où je bloque c'est quand je voudrais un tableau. Le dernier exemple en date etait pour un style switcheur, je voulais definir dans une constante tout les styles possibles, et bien voila ce que j'ai fais:

define('SKIN','bleu_orange_rouge_vert_gris');

// Plus loin dans le script.
explode('_',SKIN);

C'est lourd et idiot, alors que quelque chose du genre arrangerait tout le monde :

define('SKIN',array('bleu','orange','rouge','vert','gris'));

Syntaxe alternative.

Gouts personels et rien que pour me moquer d'Olivier car il en abuse dans dotclear, qui est accessoirement un CMS réalisé de mains de maitre, virez-moi les if then : else : ! Non mais c'est quoi, les accolades c'est deux fois plus simple ;o)

Commentaires

Mardi 26 Août 2003 20:13:23 - mat Lien

J'en ai un autre de souhait :
-> generer de l'html valide. parceque ya pas que les sessions, ya aussi le nl2br invalide en html et j'en passe et des meilleures... en fait tout ce qui genere de l'html en php est pourri :)

Réagissez

En fait non ! Trop de smap