Sonar für PHP
In einem Blog Posting von SQLI durfte ich heute voller Freude lesen, dass bei SQLI daran gearbeitet wird, Sonar auch für PHP-Projekte nutzbar zu machen.
Sonar is an open platform to manage code quality. As such, it covers in its core version the 7 axes of code quality:
- Architecture & Design
- Duplications
- Unit Tests
- Complexity
- Potential Bugs
- Coding Rules
- Comments
Im Java-Bereich setzen wir bei 1&1 Sonar bereits seit einiger Zeit erfolgreich ein. Nach jedem Commit erzeugt Hudson im Sinne der kontinuierlichen Integration einen kompletten Integrationsbuild, führt Tests aus und analysiert mit Hilfe von Checkstyle den gesamten Sourcecode. Die Ergebnisse davon werden in Sonar visualisiert und geben einen schnellen Überblick, wie es um die Qualität der Applikation bestellt ist. Dabei sind nicht die absoluten Kennzahlen das Maß aller Dinge, sondern mehr die Entwicklung, die die Projekte machen. Eine Testabdeckung von 5% ist grandios, wenn sie gestern noch bei 0% war.
Neben dem Nutzen für uns Entwickler bietet Sonar auch noch einen Nutzen für mein alter ego als IT Manager: Sonar berechnet uns mit Hilfe eines Plugins den technischen Kredit in Euro, den wir aufnehmen, wenn wir bei einer Entwicklung den Fokus auf den Liefertermin statt der Qualität setzen. Diese Zahl gibt Auskunft darüber, wie viel es unser Unternehmen kosten wird, die Applikation an unsere Qualitätsstandards anzupassen. Damit kann für Folgeprojekte argumentiert werden, da die Qualitätsprobleme für das Management sichtbar gemacht werden.
Eine Integration von PHP-Projekten in Sonar war schon lange mein Wunsch, da wir neben unseren Java-Applikationen auch einige business-kritische Applikationen mit PHP betreiben, die bislang noch nicht entsprechend analysiert werden.
Die Entwickler bei SQLI haben es jetzt geschafft, Daten aus SQLI_CodeSniffer (einem Wrapper für PHP_CodeSniffer), PHPUnit (mit XDebug code coverage), PHP_Depend und dem PHPUnit pmd Report in Sonar zu importieren. Im Blog Eintrag gibt es bislang leider erst ein paar Screenshots, produktiv kann das System noch nicht eingesetzt werden.
Ich werde die Entwicklung bei SQLI auf jeden Fall weiter beobachten und bin damit sicher nicht alleine.
Xing
LinkedIn
Twitter
Ohloh
Slideshare
Facebook
Delicious
Github
Technorati
Flickr
Last.fm
YouTube
Amazon Wishlist