
Inhaltsverzeichnis
Einführung PHP Mess Detector
PHP Mess Detector (phpmd) ist ein nützliches Open-Source-Tool für die statische Codeanalyse in PHP-Projekten. Es hilft Entwicklern, potenzielle Probleme im Code aufzudecken, wie beispielsweise übermäßig komplexe Funktionen, lange Klassen, doppelte Codeabschnitte und andere Verletzungen von Coding-Standards. Durch die Verwendung von PHPMD kann die Codequalität verbessert, die Wartbarkeit erleichtert und die Wahrscheinlichkeit von Fehlern reduziert werden.
Installation und Einrichtung von PHP Mess Detector
Globale Installation via Composer
Die einfachste Methode zur Installation ist die globale Installation via Composer:
composer global require phpmd/phpmd
Nach der Installation steht Ihnen der phpmd
-Befehl global zur Verfügung.
Lokale Installation im Projekt
Alternativ können Sie PHPMD auch lokal in Ihrem Projekt installieren:
composer require phpmd/phpmd --dev
Nach der Installation befindet sich die ausführbare Datei im Ordner vendor/bin
.
Konfiguration und Anpassung von PHP Mess Detector
PHPMD bietet eine hohe Flexibilität und ermöglicht detaillierte Anpassungen an die Bedürfnisse Ihres Projekts. Hier sind einige fortgeschrittene Konfigurationsmöglichkeiten und Anpassungen:
Regelwerke (Rulesets)
PHPMD verwendet Regelwerke, um festzulegen, welche Arten von Problemen im Code analysiert werden sollen. Sie können aus verschiedenen vordefinierten Regelwerken wählen oder eigene erstellen.
Beispiel für die Verwendung eines vordefinierten Regelwerks:
phpmd src text codesize,unusedcode,naming
Dieser Befehl analysiert den src
-Ordner und verwendet die Regelwerke codesize
, unusedcode
und naming
, um nach Problemen in Bezug auf Code-Größe, ungenutzten Code und Namenskonventionen zu suchen. Das Ergebnis wird im Textformat ausgegeben.
Beispiel für die Verwendung eines benutzerdefinierten Regelwerks:
<?xml version="1.0"?>
<ruleset name="Custom Rules"
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0
http://pmd.sourceforge.net/xsd/ruleset_2_0_0.xsd">
<description>
My custom ruleset.
</description>
<rule ref="rulesets/codesize.xml/ExcessiveMethodLength">
<properties>
<property name="minimum" value="30"/>
</properties>
</rule>
<rule ref="rulesets/unusedcode.xml"/>
</ruleset>
Dieses XML-File definiert ein benutzerdefiniertes Regelwerk, das auf den Standard-Regelwerken basiert, aber die maximale Länge einer Methode auf 30 Zeilen reduziert.
Formatierung der Ausgabe
Sie können das Ausgabeformat von PHPMD an Ihre Bedürfnisse anpassen. Verfügbare Formate sind text
, xml
, html
und json
.
Beispiel für die Ausgabe im XML-Format:
phpmd src xml codesize,unusedcode > phpmd.xml
Dieser Befehl erzeugt eine XML-Datei namens phpmd.xml
mit den Analyseergebnissen.
Ignorieren von Dateien und Ordnern
Sie können bestimmte Dateien oder Ordner von der Analyse ausschließen, indem Sie die Option --exclude
verwenden.
Beispiel:
phpmd src text codesize,unusedcode --exclude /path/to/exclude,/another/path
Dieser Befehl schließt die angegebenen Pfade von der Analyse aus.
Minimale Priorität
Mit der Option --minimumpriority
können Sie die minimale Priorität für gefundene Regelverstöße festlegen.
Beispiel:
phpmd src text
codesize,unusedcode --
minimumpriority 3
Dieser Befehl zeigt nur Regelverstöße mit einer Priorität von 3 oder höher an.
Verwenden von Umgebungsvariablen
Umgebungsvariablen können in der Konfiguration verwendet werden, um flexible und dynamische Analysen zu ermöglichen.
Allerdings unterstützt PHPMD Umgebungsvariablen nicht direkt in den Regelwerken. Sie können aber in Skripten verwendet werden, die PHPMD aufrufen, um Parameter dynamisch zu setzen.
Benutzerdefinierte Regeln
PHPMD erlaubt die Erstellung eigener Regeln. Dies ist allerdings ein fortgeschritteneres Thema und erfordert Kenntnisse der PHPMD-internen Architektur.
Verwendung von PHP Mess Detector
Grundlegende Befehle
Code analysieren:
phpmd src text
codesize,unusedcode,naming
Analyse mit benutzerdefiniertem Regelwerk durchführen:
phpmd src xml /path/to/custom-ruleset.xml > phpmd.xml
Hilfe anzeigen:
phpmd --help
Integration in CI/CD-Pipelines
PHPMD lässt sich problemlos in CI/CD-Pipelines integrieren. Hier ein Beispiel für GitLab CI:
static_analysis:
image: composer:latest
stage: test
script:
- composer global require phpmd/phpmd
- vendor/bin/phpmd src xml codesize,unusedcode,naming > phpmd.xml
artifacts:
paths:
- phpmd.xml
Tipps und Best Practices für PHP Mess Detector
Beginnen Sie mit wenigen, grundlegenden Regelwerken und erweitern Sie schrittweise.
Passen Sie die Regelwerke an die spezifischen Bedürfnisse Ihres Projekts an.
Integrieren Sie PHPMD frühzeitig in den Entwicklungsprozess, um Probleme frühzeitig zu erkennen.
Nutzen Sie die Möglichkeit, Dateien und Ordner auszuschließen, um irrelevante Codebereiche zu ignorieren.
Automatisieren Sie die Codeanalyse mit PHPMD in Ihrer CI/CD-Pipeline.
Berücksichtigen Sie die Ausgabe von PHPMD im Review-Prozess.
Fazit
PHP Mess Detector ist ein wertvolles Werkzeug für PHP-Entwickler, um die Codequalität zu verbessern und potenzielle Probleme frühzeitig zu erkennen. Durch die Integration in den Entwicklungsprozess und CI/CD-Pipelines können Sie sicherstellen, dass Ihr Code sauber, wartbar und fehlerfrei ist. Probieren Sie PHPMD aus und verbessern Sie die Qualitätssicherung Ihrer PHP-Projekte noch heute!
Weiterführende Ressourcen
Reintech Blog: Analyzing PHP Code with PHP_CodeSniffer and PHPMD
https://reintech.io/blog/analyzing-php-code-with-php_codesniffer-and-phpmd
DEV Community: Top 6 PHP Code Quality Tools 2023
https://dev.to/documatic/top-6-php-code-quality-tools-2023-2kb1
PHPMD Official Rulesets
https://phpmd.org/rules/
PHPMD GitHub Repository
https://github.com/phpmd/phpmd
PHPMD Project Site (phpc.social)
https://phpc.social/@phpmd
Stack Overflow: What is PHPMD and how to use it?
https://stackoverflow.com/questions/27958289/what-is-phpmd-and-how-to-use-it
Häufig gestellte Fragen (FAQ)
Wie kann ich PHPMD in meine IDE integrieren?
Viele IDEs bieten Plugins oder Erweiterungen für PHPMD an. Suchen Sie im Marketplace Ihrer IDE nach "PHPMD" oder "PHP Mess Detector".
Wie behebe ich die von PHPMD gefundenen Probleme?
Die von PHPMD gemeldeten Probleme sollten als Hinweise betrachtet werden. Überprüfen Sie den Code sorgfältig und entscheiden Sie, ob eine Änderung erforderlich ist, um die Codequalität zu verbessern.
Kann ich PHPMD verwenden, um Coding-Standards durchzusetzen?
Ja, PHPMD kann verwendet werden, um Coding-Standards durchzusetzen, indem Sie die entsprechenden Regelwerke auswählen oder eigene erstellen.
Wie kann ich die Performance von PHPMD verbessern?
Vermeiden Sie die Analyse großer Codebasen auf einmal. Verwenden Sie die Option --exclude, um irrelevante Dateien und Ordner auszuschließen.
Unterstützt PHPMD PHP 8 und höher?
Ja, PHPMD unterstützt PHP 8 und höhere Versionen. Stellen Sie sicher, dass Sie die neueste Version von PHPMD verwenden.
Kann ich PHPMD verwenden, um Legacy-Code zu analysieren?
Ja, PHPMD kann verwendet werden, um Legacy-Code zu analysieren und potenzielle Probleme aufzudecken.
Wie kann ich die Fehlermeldungen von PHPMD interpretieren?
Die Fehlermeldungen von PHPMD geben in der Regel den Dateinamen, die Zeilennummer und die Art des Problems an. Verwenden Sie diese Informationen, um den betroffenen Code zu lokalisieren und zu beheben.
Wie kann ich PHPMD an meine Projektanforderungen anpassen?
Erstellen Sie benutzerdefinierte Regelwerke und passen Sie die vorhandenen Regelwerke an, um PHPMD an Ihre Projektanforderungen anzupassen.

Erreichen Sie unsere PHP Consultant Spezialisten
Wir sind Experten für PHP und helfen Ihnen, Ihre digitalen Herausforderungen zu meistern. Unser erfahrenes Team unterstützt Sie bei PHP Updates, PHP Refactoring und berät Sie remote zu allen Fragen rund um PHP. Mit unseren vollautomatischen CI/CD Deployments und einer robusten Docker-Infrastruktur bringen wir Ihre PHP-Projekte auf das nächste Level. Vertrauen Sie auf unsere Expertise für zuverlässige und skalierbare PHP-Lösungen.
Bildergallerie PHP Mess Detector
Die PHP Mess Detector (phpmd) Bildergalerie bietet einen visuellen Überblick über die statische Code-Analyse für PHP. Mit phpmd kannst du Code-Smells, zyklomatische Komplexität, unnötige Code-Duplikate und Sicherheitsprobleme in deinem PHP-Projekt aufspüren und beheben.

Screenshot der Inspektionseinstellungen einer WebIDE mit aktivierter PHP Mess Detector Validation. Markierte Optionen für Code-Größe, Design-Regeln und ungenutzten Code.

Screenshot der Inspektionseinstellungen in PhpStorm mit aktivierter PHP Mess Detector Validation. Zeigt Optionen zur Installation und Konfiguration von PHP Mess Detector für Code-Style-Prüfungen.
