vendredi 25 septembre 2026

À propos

Contact

Tests

SonarQube, Scrutinizer ou Codacy pour analyser un code WordPress

Trois plateformes d'analyse continue passées au crible sur un vrai projet WordPress : règles PHP et JS, intégration aux pull requests, et facture à la fin du mois.

Par Clément Hadrot • 19 juillet 2023 • 5 min de lecture • Aucun commentaire
SonarQube, Scrutinizer ou Codacy pour analyser un code WordPress

Combien de temps faut-il pour savoir si un outil d’analyse de code vaut le coût de son abonnement ? Sur un projet d’agence gérant une dizaine d’extensions WordPress maison, on a branché SonarQube, Scrutinizer CI et Codacy simultanément sur le même dépôt Git pendant six semaines, avant de trancher. Voici ce que ça a donné, en dehors de tout discours commercial.

Le contexte compte : un dépôt de taille moyenne, environ 40 000 lignes de PHP réparties sur cinq extensions, plus quelques milliers de lignes de JavaScript pour des blocs Gutenberg personnalisés. L’objectif était de bloquer les régressions de qualité sur les pull requests, pas de refaire l’historique du code existant.

SonarQube : le plus complet, le plus lourd à porter

SonarQube détecte le plus large éventail de problèmes : failles de sécurité potentielles, duplication de code, complexité cyclomatique excessive, et une notion de « dette technique » chiffrée en temps estimé de correction. Le plugin communautaire pour PHP couvre correctement WordPress, à condition de configurer soi-même les règles pour ne pas signaler comme faute des patterns légitimes du cœur, comme l’usage massif de fonctions globales.

La version Community s’auto-héberge gratuitement, mais demande un serveur dédié avec une base PostgreSQL, ce qui représente un coût d’exploitation réel pour une petite équipe. La version Cloud supprime cette contrainte, au prix d’un abonnement par ligne de code analysée qui grimpe vite sur un dépôt de plusieurs dizaines de milliers de lignes.

Le Quality Gate, ce mécanisme qui bloque une pull request tant que les métriques définies ne sont pas respectées, est le vrai atout de l’outil : on peut exiger par exemple zéro nouvelle vulnérabilité et une couverture de tests minimale sur le code modifié, sans toucher au code legacy non couvert.

Codacy : l’intégration la plus rapide, la facture la plus salée

Codacy se distingue par sa simplicité de mise en route : connexion au dépôt GitHub, sélection des standards PHP et ESLint souhaités, et les premières analyses tournent en moins de dix minutes, sans configuration serveur. L’interface classe les problèmes par catégorie (sécurité, complexité, style, documentation) et affiche un badge de couverture directement dans les pull requests.

L'essentiel à retenir : SonarQube exige un serveur ou un abonnement Cloud ; Codacy s'installe en cinq minutes mais coûte cher par contributeur ; Scrutinizer reste le plus abordable pour un petit dépôt privé

Le revers se voit à la fin du mois : la tarification par contributeur actif rend l’outil coûteux dès que l’équipe dépasse trois ou quatre développeurs réguliers, sans réduction notable pour un usage sur des dépôts privés d’agence gérant plusieurs projets clients séparés. Pour une petite structure qui facture ses développements au client, ce coût doit être explicitement intégré au devis, ce qu’on a parfois oublié de faire lors des premiers mois d’essai.

Scrutinizer CI : discret mais efficace sur un budget serré

Moins connu, Scrutinizer CI cible spécifiquement PHP et propose une analyse statique fine, avec des suggestions de correction directement sous forme de diff proposé en commentaire de pull request. Son plan gratuit couvre les dépôts open source, et son offre payante pour dépôts privés reste sensiblement moins chère que Codacy à effectif équivalent.

Sa faiblesse : le support JavaScript est plus limité, et l’interface, moins soignée, demande un peu plus de tâtonnement pour configurer des règles personnalisées adaptées aux conventions WordPress (globals autorisés, préfixage des fonctions, etc.).

Comparatif synthétique

CritèreSonarQube (Cloud)CodacyScrutinizer CI
Mise en routeModérée (config Quality Gate)Très rapideRapide
Couverture PHPTrès complèteBonneTrès bonne
Couverture JS/TSBonneBonneLimitée
Auto-hébergementPossible (Community)NonNon
Coût pour 5 devs, dépôt privéÉlevéÉlevéModéré
Suggestions de correction en PRLimitéesOuiOui, en diff

Le vrai coût caché : le temps de calibrage des règles

Sur les trois outils, la première semaine s’est soldée par une avalanche d’alertes, la plupart sans intérêt pour du code WordPress : fonctions globales signalées comme mauvaise pratique, complexité jugée excessive sur des switch de gestion de hooks pourtant lisibles, avertissements sur des superglobales $_POST déjà correctement filtrées. Aucun outil n’a de profil WordPress prêt à l’emploi vraiment satisfaisant : il faut systématiquement désactiver ou pondérer une partie des règles par défaut, sous peine de noyer les vraies alertes dans le bruit.

  • Compter au moins une demi-journée de calibrage initial par outil avant de l’activer en bloquant sur les pull requests
  • Exclure d’emblée les dossiers vendor, node_modules et les fichiers minifiés livrés par des bibliothèques tierces
  • Activer le blocage progressif : d’abord en mode rapport seul, puis en mode bloquant une fois les faux positifs éliminés

Un outil d’analyse continue mal calibré est pire que l’absence d’outil : l’équipe apprend à ignorer les alertes rouges, et le jour où une vraie faille de sécurité est signalée, personne n’y prête attention.

Notre verdict

Pour une petite équipe ou une agence qui gère plusieurs dépôts privés avec un budget contraint, Scrutinizer CI offre le meilleur rapport entre pertinence des alertes PHP et coût. Pour une structure qui a déjà investi dans une gouvernance qualité formalisée, avec des Quality Gates partagés entre plusieurs équipes et des exigences de conformité, SonarQube Community auto-hébergé reste le choix le plus solide, à condition d’accepter la charge d’exploitation d’un serveur supplémentaire. Codacy convainc surtout les équipes qui veulent une mise en route immédiate sans administration technique, et qui peuvent absorber son coût par contributeur sans discussion. Il n’existe pas de vainqueur universel : le bon choix dépend d’abord de la taille de l’équipe et de qui, dans la structure, porte le coût de l’outil.

Partager :

À propos de l'auteur

Clément Hadrot

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi