Surveillance des applications PHP avec PHPMetrics

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Qu'est-ce que PHPMetrics ?

PHPMetrics est une bibliothèque puissante pour l'analyse statique et la surveillance des applications PHP. Elle permet de collecter des métriques de code telles que la complexité, la couverture de tests, le nombre de lignes, les dépendances et les problèmes potentiels. La bibliothèque s'intègre aux pipelines CI/CD et aide les développeurs à maintenir une qualité de code élevée.

Pourquoi surveiller les applications PHP ?

La surveillance des applications PHP ne se limite pas au suivi des performances en runtime, mais inclut également le contrôle de la qualité du code. PHPMetrics aide à identifier les « odeurs » de code (code smells), la complexité excessive et les violations des normes PSR. Cela est particulièrement important pour les grands projets où le maintien de la propreté du code est crucial pour l'évolutivité et la réduction de la dette technique.

Installation

L'installation de PHPMetrics se fait via Composer :

composer require --dev phpmetrics/phpmetrics

Après l'installation, vous pouvez lancer l'analyse depuis la ligne de commande :

vendor/bin/phpmetrics --report-html=./report /path/to/your/project

Cela générera un rapport HTML avec une visualisation des métriques.

Fonctionnalités principales

  • Analyse statique : évaluation de la complexité cyclomatique, de la profondeur d'héritage, de la cohésion des classes.
  • Génération de rapports : HTML, JSON, XML — pour l'intégration avec Jenkins, GitLab CI ou Grafana.
  • Surveillance de la couverture : analyse de la couverture de code par les tests (nécessite PHPUnit).
  • Visualisation des dépendances : graphes de classes et de paquets.
  • Intégration CI/CD : possibilité d'interrompre la construction en cas de dépassement des seuils de complexité.

Exemple de code PHP

Voici un exemple d'utilisation de PHPMetrics dans un script pour une analyse programmatique :

<?phprequire_once 'vendor/autoload.php';

use PHPMetrics\\Metrics\\Project;use PHPMetrics\\Report\\HtmlReport;use PHPMetrics\\Report\\JsonReport;

// Création de l'objet projet$project = new Project('/path/to/your/php/code');$project->run(); // Lancement de l'analyse

// Récupération des métriques$metrics = $project->getMetrics();echo 'Complexité moyenne : ' . $metrics->getAverageComplexity() . PHP_EOL;echo 'Nombre de classes : ' . $metrics->getNumberOfClasses() . PHP_EOL;

// Génération du rapport en JSON$jsonReport = new JsonReport($project);file_put_contents('metrics.json', $jsonReport->generate());

// Ou en HTML$htmlReport = new HtmlReport($project);$htmlReport->generateToFile('report.html');

Ce script peut être exécuté dans cron ou dans le cadre d'un déploiement.

Quand l'utiliser

PHPMetrics est idéal pour :

  • L'audit régulier du code dans le cadre du CI/CD (par exemple, avant chaque fusion dans main).
  • L'évaluation de la dette technique lors du refactoring.
  • La surveillance de la qualité du code dans les projets à long terme.
  • La formation d'équipe — les rapports visuels aident à comprendre quelles parties du code nécessitent des améliorations.

N'utilisez pas PHPMetrics pour la surveillance des performances en temps réel (pour cela, il existe Xdebug ou Blackfire). C'est un outil d'analyse statique, pas un profileur runtime.

L'intégration de PHPMetrics dans le processus de développement réduit le nombre de bogues et simplifie la maintenance du code, en particulier dans les équipes distribuées.

Recommendations