Au risque de décevoir, il ne s'agit de pépites de grande valeur, bien au contraire, puisque j'utilise ce mot de manière plus qu'ironique.

En effet, indépendamment du niveau et de l'expérience du développeur à l'origine du code, il m'arrive de tomber sur du code peu efficace, voir complètement stupide.

C'est donc une compilation de quelques-unes de ces mauvaises pratiques que je me propose de partager.

Je vais donc commencer par une technique permettant de localiser la clef de la dernière valeur valant TRUE dans un tableau :

<?php
...
$lastTrue = null;

foreach ($values as $key => $value)
{
if ($value == true)
{
$lastTrue = $key;
}
}
...
?>

Il est vrai que c'est beaucoup plus efficace et lisible que cela :

<?php
...
$lastTrue = array_search(true, array_reverse($values, true));
...
?>

La gestion du temps est parfois également un problème, d'ailleurs, l'une de mes expressions favorites est que le temps, c'est chiant (et c'est un ancien développeur d'opentime qui le dit).

Le but est cette fois de calculer le numéro du jour de la semaine, 1 devant correspondre au lundi, et 7 au dimanche.

<?php
...
$day = date('w', $timestamp);

if ($day == 0)
{
$day = 7;
}
...
?>

C'est à se demander la raison pour laquelle les développeurs de PHP ont cru bon d'ajouter l'argument N à la fonction date() avec PHP 5.1 (et pour information, le code incriminé devait être exécuté sur PHP 5.3 minimum).

<?php
...
$day = date('N', $timestamp);
...
?>

Il arrive également parfois que le développeur éprouve le besoin d'initialiser un tableau avec un suite d'entier.

J'ai vu pas mal d'énormité pour réaliser cette simple tâche, mais la plus répandue est celle qui suit.

<?php
...
$array = array(1, 2, 3, 4, 5, 6, 7 , 8, 9, 10 /* en on peut aller très loin comme cela */);
...
?>

Apparemment, il y a des gens qui aiment avoir le bout des doigts carrés.

Personnellement, dans ce cas, j'applique à la lettre l'une des maximes favorites de mon professeur de C++ : un bon développeur est un développeur fainéant.

<?php
...
$array = range(1, 10);
...
?>

Je vais m'arrêter là pour ce billet, car sinon, j'en connais certain qui vont crier au lynchage en place publique, et d'autres qui me diront que si je veux lire du code de qualité, je n'ai qu'à lire autre chose que du code en PHP, ce qui, dans un cas comme dans l'autre, ne sera pas très constructif.

Et puis, il faut que j'en garde sous le coude pour le prochain florilège, même si la matière n'est pas très difficile à trouver, malheureusement.

Pourtant, quoiqu'on dise et quoiqu'on pense du langage, il est possible d'écrire du beau code en PHP, c'est à dire un code qui est efficace tout en étant lisible et évolutif.

Cependant, pour pouvoir en écrire, il y a pré-requis incontournable, connu sous le vocable RTFM, et qui pourrait être traduit, dans un langage beaucoup moins imagé, par le faite de prendre la peine de lire régulièrement et en profondeur la documentation de PHP.

C'est d'ailleurs la première chose que je demande à mes stagiaires lors de leur arrivée.

Ils me prennent alors bien souvent pour un dingue, mais ils finissent toujours par comprendre l'intérêt de la démarche, car ils découvrent systématiquement des pépites (cette fois dans le bon sens du terme) qui leur simplifie leur travail.

Car s'il y a une chose qu'il est possible de dire au sujet des cas présentés ci-dessus, c'est qu'il laisse transparaître une méconnaissance totale de certaines fonctions pourtant très basiques, mais au combien puissantes, du langage.

À bon entendeur...