ILIAS-Blog
ILIAS-Entwicklung mit PhpStorm
Eine "Integrierte Entwicklungsumgebung" macht allen das Leben leichter, die regelmäßig mit Code hantieren müssen. Ein bekannter Vertreter dieser Gattung ist PhpStorm. Jetbrains, die Firma hinter PhpStorm, hat interessierten ILIAS-Entwicklern das Angebot gemacht, kostenlos ihre Software zu benutzen. Im Gegenzug freue man sich über einen Bericht mit unseren Erfahrungen. Aus diesem Grunde haben wir uns mit unserem Entwicklungsleiter Fabian Schmid unterhalten, der bereits seit einiger Zeit auf PhpStorm setzt.

Hallo Fabian! Wie kann man sich als Laie die Arbeit mit PhpStorm vorstellen?
PhpStorm ist eine sogenannte IDE, eine "Integrierte Entwicklungsumgebung". Man kann sich dies vorstellen als Texteditor, mit vielen Erweiterungen und Tools, welche die tägliche Arbeit mit Code wesentlich erleichtern. Dies beginnt schon bei der Auto-Completion, also der automatischen Vervollständigung von Code-Teilen: PHPStorm indexiert laufend den ILIAS-Code, kennt alle Klassen und deren Funktionen (Methoden), und schlägt diese nach Bedarf vor. Damit muss der Entwickler nicht jedes mal nachschauen, wie eine Methode genau heißt. Dies spart viel Zeit!
Außerdem überprüft eine IDE laufend die Syntax vom Code. Wenn ich mich vertippe oder etwas konstruiere, das PHP nicht interpretieren kann, zeigt die IDE die betroffenen Stellen an. PhpStorm bietet auch Werkzeuge zum Umbauen, Reorganisieren und Reformatieren von Code. Soll zum Beispiel ein Teil einer Klasse neu in eine eigenständige Klasse ausgelagert werden, kann PhpStorm dies tun und sucht nach allen Stellen im Code, die auf die alte Klasse referenzieren. An all diesen Stellen wird dann vorgeschlagen, die Referenzen auf die neue Klasse zu wechseln.
Ein weiterer Vorteil: Seit 2015 arbeiten wir im ILIAS-Projekt mit der Versions-Kontrolle "git". Auch diese ist in PhpStorm integriert. Ich habe damit die Möglichkeit, meine Code-Änderungen direkt in der IDE zu kommentieren und zu committen, also für andere Programmierer freizuschalten.
Was ist der wichtigste Vorteil von PhpStorm im Vergleich zur Arbeit mit separaten Texteditoren, Compilern, Linkern und Debuggern?
Alle diese Tools in einer Software zu haben, erspart sehr viel Zeit. Zudem gewöhnt man sich an die Oberfläche und deren Nutzung und braucht nicht zehn unterschiedliche Programme zu kennen. Viele Entwickler nutzen aber bewusst auch die Kommandozeile, um gewisse Aktionen auszuführen (bspw. git-Commits).
Was zeichnet PhpStorm im Vergleich zu anderen IDEs aus?
Die IDEs von Jetbrains bestehen jeweils auf einem Grundgerüst und einer Auswahl an vorinstallierten Plugins. D.h. PhpStorm wird mit PHP-spezifischen Plugins ausgeliefert, RubyMine dagegen ist bereits für die Programmiersprache Ruby ausgerüstet. Das erlaubt es gerade für ILIAS, welches zu großen Teilen aus PHP, aber auch HTML, JavaScript und Java besteht, eine individuelle Zusammenstellung an Plugins zu installieren, um all diese Sprachen zu unterstützen.
Im Vergleich zu anderen IDEs, bspw. Netbeans, ist mir insbesondere der Geschwindigkeitsunterschied aufgefallen.
ILIAS ist ein sehr umfangreiches Projekt. Wie gut funktioniert die Navigation darin mit PhpStorm?
Größtenteils sehr gut und schnell. Die Auto-Completion wurde mit jeder Version von PhpStorm besser, zudem kann man Dinge, die PhpStorm in ILIAS nicht versteht, kommentieren. Anhand dieser Kommentare weiß PhpStorm dann, worum es sich handelt (bspw. eine Variable deklarieren, damit PhpStorm weiß, dass es sich um eine Klasse vom Typ "ilCtrl" handelt - und damit dann Code-Completion anbieten kann).
Mit einzelnen Stellen hat PhpStorm aber noch Mühe. So sind zum Beispiel die Dateien mit allen Datenbank-Update-Schritten sehr umfangreich und in einem Format, dass PhpStorm Mühe bereitet. Das Öffnen solcher Dateien kann schon etwas länger dauern…
Aber insgesamt bist Du mit der Performance also zufrieden?
PhpStorm arbeitet im Hintergrund mit einem Index, der ständig aktualisiert wird. Das macht Suchen und AutoCompletion enorm schnell. Probleme gibt es einzig bei Dateien, welche nicht "korrektes" PHP-Format haben und gleichzeitig sehr groß sind.
Hast Du sonst noch etwas, was Du zu PhpStorm sagen willst?
PhpStorm hat mich bisher bei den IDEs am meisten überzeugt. Insbesondere die Fülle an zusätzlichen Tools (REST-API-Tester, XDebug-Integration, Erweiterungen wie JIRA-Integration, Unterstützung von Composer, Vagrant und vielem mehr) hat mein "daily business" massiv unterstützt.
