Überwachung von PHP-Anwendungen mit PHPMetrics

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was ist PHPMetrics?

PHPMetrics ist eine leistungsstarke Bibliothek für die statische Analyse und Überwachung von PHP-Anwendungen. Sie ermöglicht das Sammeln von Code-Metriken wie Komplexität, Testabdeckung, Zeilenanzahl, Abhängigkeiten und potenzielle Probleme. Die Bibliothek lässt sich in CI/CD-Pipelines integrieren und hilft Entwicklern, die Codequalität auf einem hohen Niveau zu halten.

Warum ist die Überwachung von PHP-Anwendungen wichtig?

Die Überwachung von PHP-Anwendungen umfasst nicht nur die Laufzeit-Performance, sondern auch die Kontrolle der Codequalität. PHPMetrics hilft dabei, Code Smells, übermäßige Komplexität und Verstöße gegen PSR-Standards zu erkennen. Dies ist besonders wichtig für große Projekte, bei denen die Aufrechterhaltung der Code-Sauberkeit für Skalierbarkeit und die Reduzierung technischer Schulden entscheidend ist.

Installation

Die Installation von PHPMetrics erfolgt über Composer:

composer require --dev phpmetrics/phpmetrics

Nach der Installation können Sie die Analyse über die Kommandozeile starten:

vendor/bin/phpmetrics --report-html=./report /pfad/zu/ihrem/projekt

Dies erstellt einen HTML-Bericht mit einer Visualisierung der Metriken.

Hauptfunktionen

  • Statische Analyse: Bewertung der zyklomatischen Komplexität, Vererbungstiefe und Klassenkohäsion.
  • Berichtserstellung: HTML, JSON, XML – zur Integration mit Jenkins, GitLab CI oder Grafana.
  • Abdeckungsüberwachung: Analyse der Testabdeckung des Codes (erfordert PHPUnit).
  • Abhängigkeitsvisualisierung: Graphen von Klassen und Paketen.
  • CI/CD-Integration: Möglichkeit, den Build bei Überschreitung von Komplexitätsschwellen zu unterbrechen.

PHP-Codebeispiel

Nachfolgend finden Sie ein Beispiel für die Verwendung von PHPMetrics in einem Skript zur programmatischen Analyse:

<?phprequire_once 'vendor/autoload.php';

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

// Projektobjekt erstellen$project = new Project('/pfad/zu/ihrem/php/code');$project->run(); // Analyse starten

// Metriken abrufen$metrics = $project->getMetrics();echo 'Durchschnittliche Komplexität: ' . $metrics->getAverageComplexity() . PHP_EOL;echo 'Anzahl der Klassen: ' . $metrics->getNumberOfClasses() . PHP_EOL;

// Bericht im JSON-Format generieren$jsonReport = new JsonReport($project);file_put_contents('metrics.json', $jsonReport->generate());

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

Dieses Skript kann in cron oder als Teil des Deployments ausgeführt werden.

Wann verwenden

PHPMetrics ist ideal geeignet für:

  • Regelmäßige Code-Audits im Rahmen von CI/CD (z. B. vor jedem Merge in main).
  • Bewertung technischer Schulden beim Refactoring.
  • Überwachung der Codequalität in langfristigen Projekten.
  • Team-Schulungen – anschauliche Berichte helfen zu verstehen, welche Codebereiche verbessert werden müssen.

Verwenden Sie PHPMetrics nicht für die Echtzeit-Überwachung der Leistung (dafür gibt es Xdebug oder Blackfire). Es ist ein Werkzeug für die statische Analyse, kein Laufzeit-Profiler.

Die Integration von PHPMetrics in den Entwicklungsprozess reduziert die Anzahl der Fehler und vereinfacht die Codewartung, insbesondere in verteilten Teams.

Empfehlungen