Leider sind im Repository viele Extensions zu finden, welche nur ein schlechte Qualität aufweisen. Dabei meine ich sowohl die Qualität des Code Designs, als auch die Einhaltung von TYPO3 Standards. Gerade letzteres ist aufgrund von den TYPO3 Coding Guidelines und der TYPO3 Core API eigentlich relativ einfach. Damit ihr schon beim entwickeln auf Fehler hingewiesen werdet, kann ich euch ein paar Tools ans herz legen, welche sich direkt in die IDE integrieren lassen.
Grundlage: Alle drei Tools werden unter OS X leicht mit brew installiert. Dazu müsst ihr zunächst brew installieren/konfigurieren und im Anschluss folgende drei Repositories aufnehmen. Im Anschluss könnt ihr die Programme direkt installieren.
brew tap homebrew/dupes; brew tap homebrew/versions; brew tap homebrew/homebrew-php; |
PS: Lars hat in den Kommentaren ebenfalls auf die Composer Integration hingewiesen! Danke.
PHP Mess Detector
Der PHP Mess Detector, weißt einen darauf hin, wenn im Code „Fehler“ sind, welche sich auf Basis einer statischen Analyse ermitteln lassen. Dies können Regeln sein, dass Variablen nicht benutzt werden, aber auch komplexe Regeln sein. Gerade die Berechnung der Komplexität von Klassen und Methoden ist hilfreich, die Klassen ordentlich zu strukturieren. Weitere Infos gibt es auf phpmd.org. Installieren könnt ihr „phpmd“ einfach mit: „brew install phpmd“
Alles was im Anschluss gemacht werden muss, den Pfad zu der executable in eurer IDE einzutragen. Mit PHPStorm könnt ihr den Pfad „/usr/local/Cellar/phpmd/1.5.0/bin/phpmd“ direkt in euren Projekt-Settings unterbringen, sodass der Mess Detector direkt in den Inspection Funktionen verfügbar ist. Ob ihr die Ausgabe von phpmd dann direkt beim editieren sehen wollt oder ausschließlich wenn ihr Verzeichnisse scannt, könnt ihr euch selbst überlegen.
PHP Code Sniffer
Der Code Sniffer ist ebenfalls ein Tool für die Analyse von Quelltext. Vorteil ist, dass es ein Regelset für TYPO3 CMS gibt, welches den TYPO3 Coding Guidelines entspricht. Den PHP Code Sniffer könnt ihr mit „brew install php-code-sniffer“ installieren. Im Anschluss könnt ihr den Sniffer für TYPO3 vorbereiten.
Dazu holt euch das Regelset…
git clone https://github.com/typo3-ci/TYPO3CMS.git; git clone https://github.com/typo3-ci/TYPO3SniffPool.git; touch typo3cs; chmod +x typo3cs; |
… und tragt in die „typo3cs“ Datei diesen Code (Pfade anpassen) ein:
#!/bin/sh php /usr/local/Cellar/php-code-sniffer/1.5.4/scripts/phpcs --standard=/Applications/Tools/TYPO3CMS/ruleset.xml $@ |
Im Anschluss kann die „typo3cs“ direkt in PHPStorm in den Projekt Settings im Bereich vom Code Sniffer eingetragen werden. Durch die „Zwischendatei“ wird das Regelset von TYPO3 gesetzt, sodass ihr möglichst nah an den TYPO3 CGL entwickeln könnt. Ähnlich wie mit phpmd könnt ihr den Inspector passend konfigurieren, wenn ihr es direkt im Code markiert haben wollt.
PHP Copy Detection
Das erkennen von kopiertem Quelltext ist ebenfalls ein Anzeichen für Mängel am Design des Entwicklers. Technisch kann dies ebenfalls mit PHP Copy Detection ausgeschlossen werden. Mittels „brew install phpcpd“ installiert ihr das Tool. Leider bietet PHPStorm keine direkte Unterstützung für dieses Tool, weshalb ich es einfach als externes Tool eingetragen habe (siehe Screenshot). Dadurch kann das Tool mittels Rechtsklick einfach auf z.B. einen kompletten Extension Ordner angewendet werden, um unnötig kopierten Code zu finden.
Alle drei Tools helfen, besseren TYPO3 Code zu schreiben. Viel Spaß Damit.