J'ai récemment eu le bonheur de reprendre un site Web (basé sur Joomla!, on commence mal) développé par une prestataire freelance. Après deux jours d'exploration, mes plus belles découvertes :
– Tout le code dans une seule fonction par classe : check.
– Aucun objet, aucune fonction en dehors du strict nécessaire pour Joomla! : check.
– Des boucles de plus de 500 lignes et un usage sur-abusif du
continue
et
break
: check.
– Des conditions TOUTES formées sur le modèle :
if (quelque chose) { // RIEN } else { faire_un_truc(); }
: check.
– Une sanitization absente, tout pris dans
$_REQUEST
: check.
– Toutes les requêtes SQL en dur dans le code, aucune requête préparée même celles répétées des milliers de fois : check.
– À peu près 200 tables pour une application, le tout sans AUCUNE contrainte d'intégrité (hormis un bête
UNIQUE
sur l'ID de chaque table) : check.
– Utiliser l'obsolète l'API
mysql_
à l'ère de PDO : check.
Pour toutes ces raisons, plus celles à suivre : PEBKAC.