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/phpmetricsNach der Installation können Sie die Analyse über die Kommandozeile starten:
vendor/bin/phpmetrics --report-html=./report /pfad/zu/ihrem/projektDies 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.