\\ Aktuelles > Allgemeines > Detail

CodeSniffer in Eclipse nutzen

Created by sf | |   Tools

Eine der nervigsten Aufgaben bei der Entwicklung ist es die Code Qualität hoch zu halten. Trotz der Lektüre von Clean Code und vergleichbaren Büchern ist eine permanente Selbstkontrolle wichtig. Warum also nicht Automatismen nutzen wo sie verfügbar sind. Eines der Tools dafür ist der CodeSniffer.

###NEWS_IMAGE_1###Der CodeSniffer ist ein Tool mit dem man auf der Konsole den Quellcode nach diversesten Regeln überprüfen kann. Diese Überprüfung meldet dann welche Regel in welcher Datei verletzt wurde und in welchem Umfang. So ist es zum Beispiel möglich zu prüfen ob die Zeichen einer Zeile eine vorher definierte Länge überschritten hat.

Da es beim Arbeiten mit Eclipse eher störend ist immer wieder in die Console zu wechseln bleibt zu befürchten, dass man als Entwickler von der automatischen Prüfung weniger Gebracht macht als es wünschenswert ist. Doch halt hab keine Angst auch dafür gibt es eine Lösung. Das Projekt PHP Tools hat sich genau dazu Gedanken gemacht und ein Plugin entwickelt mit dem der CodeSniffer in Eclipse integriert wird.

Dieses Plugin lässt sich nun prima für alle PHP Belange nutzen. Ein über Forge zur Verfügung gestellter Standard ist aber leider nicht einsatzbar. Um diese Lücke zu schliessen habe ich eine kleine Installationsanleitung zusammengestellt.

###NEWS_IMAGE_2######NEWS_IMAGE_3######NEWS_IMAGE_4###Zunächst muss erst einmal die PHP Erweiterung PEAR selber mit der Anweisung apt-get install php-pear installiert werden. Danach muss der CodeSniffer mit dem Kommando pear install pear/PHP_CodeSniffer-1.3.0RC2 hinzugefügt werden. Leider müssen wir den Release Candidate 2 verwenden, da das TYPO3 Packet nur mit diesem kompatibel ist.

Das TYPO3 Paket angesprochen setzen wir nun bei der Installation der dafür notwendigen Paket fort. Mit den folgenden Befehlen wird das TYPO3 Pear Paket Verzeichnis bekannt gemacht, die darin verfügbaren Pakete aufgelistet und dann die Standards für TYPO3 und TYPOv4 installiert:

  1. pear channel-discover pear.typo3.org
  2. pear remote-list -c typo3
  3. pear install typo3/PHPCS_TYPO3_SniffPool-0.0.3
  4. pear install typo3/PHPCS_TYPO3v4_Standard-0.0.3

Mit dieser Grundlage können wir uns endlich dem Eclipse selber zuwenden. Hier muss das bereits erwähnte Modul aus den PHP Tools installiert werden. Dafür muss im Install Menu (Help -> Install new Software) im Feld "Work with:" die URL http://www.phpsrc.org/eclipse/pti/ eingegeben werden. In der darauf hin verfügbaren Auswahl muss jetzt PHP Tool Codesniffer angehakt werden. Die weiteren Fragen sind dann zu bestätigen.

Nachdem wir das PEAR Paket, den Konsolen CodeSniffer und das Eclipse Modul haben müssen nur noch ein paar Einstellungen vorgenommen werden. Als da wären Einstellungen für die PHP Executable und die PEAR Library.

Was die PHP Executables angeht brauchen wir einen Eintrag für PHP5. Fals in Windows -> Preferences -> PHP -> PHP Executables noch kein passender Eintrag vorhanden ist fügen wir einen mit folgenden Werten ein:

  • Name: PHP5
  • Executable path: /usr/bin/php5
  • PHP debugger: XDebug

###NEWS_IMAGE_5######NEWS_IMAGE_6######NEWS_IMAGE_7###Auch für die PEAR Library müssen noch ein paar Einstellungen vorgenommen werden. Denn auch wenn die PHP Tools eine PEAR Bibliothek mit bringen reicht das für unseren Bedarf nicht aus. Denn die integrierte Lib ist bisher nur die Version 1.1 und damit nicht ausreichend für die TYPO3 Standards. Deshalb muss nun unter Windows -> Preferences -> PHP Tools -> Library -> PEAR ein neuer Eintrag mit den folgenden Werten angelegt werden:

  • Name: PEAR
  • Path: /usr/share/php

###NEWS_IMAGE_8###In Summe sind jetzt alle Voraussetzungen vorhanden. Um die Installation nun abzuschließen muss noch in den Einstellungen des Codesniffers auf die angelegten Executable und Library verwiesen werden. Dafür muss innerhalb von Window -> Preferences -> PHP Tools -> PHP CodeSniffer folgendes ausgewählt werden:

  • PHP Executable: PHP5 (wurde hinzugefügt oder war schon vorhanden)
  • PEAR Library: PEAR (wurde neu angelegt)
  • Debug: print PHP output to console anhaken
  • CodeSniffer Standards: TYPO3v4
  • Tab width: 0

An dieser Stelle eine kleine Anmerkung meinerseits. Es sollte immer nur der TYPO3v4 Standard markiert sein. Denn nur in diesem Paket wird definiert welche Rule für TYPO3 relevant sind. Im anderen TYPO3 Paket sind zwar die Regeldateien untergebracht aber in diesem kann keine Regel dekativiert werden.

Denn genau das ist etwas, das man früher oder später erreichen will. Kaum hat man mit der Entwicklung fortgesetzt fällt auf, dass einige Regeln eher hinderlich sind. Namendlich möchte ich die CommentLength Regel erwähnen. In dieser wird geregelt, dass eine Kommentarzeile nur 80 Zeichen lang sein darf. Da die Coding Guidelines von TYPO3 aber eine Länge von 130 erlauben ist es unverständlich warum Kommentare nicht genauso lang sein sollten.

Aktuell spiele ich noch ein wenig mit einem eigenen Paket speziell für die Entwicklung von Extbase Extensions rum. Leider habe ich noch keinen Stand erreicht, der mich so zufrieden stellt, dass ich es hier veröffentlichen würde. Daher kann ich nur jedem empfehlen eine Kopie des TYPO3v4 Paketes zu erstellen und darin dann experimentieren. Der Pfad dahin ist /usr/share/php/PHP/CodeSniffer/Standards/TYPO3v4/ oder halt der eigene Pfadname.

CodeSniffer installieren
PHP Executable hinzufügen
PHP Executable Einstellungen
PHP Executable wurde hinzugefügt
PEAR Bibliothek hinzufügen
PEAR Bibliothek Einstellungen
PEAR Bibliothek wurde hinzugefügt
CodeSniffer Einstellungen