EasyEclipse for PHP

Aus THM-Wiki
(Weitergeleitet von EasyEclipse)
Wechseln zu: Navigation, Suche

EasyEclipse for PHP (im Folgenden mit PhpEclipse abgekürzt) ist eine Distribution der bekannten Open-Source-Entwicklungsplattform Eclipse, die mit Plugins für die Entwicklung im PHP-Bereich erweitert wurde. PhpEclipse bietet Features in den Entwicklungsbereichen Codebearbeitung, Modultests, Deployment, Ausführung und Debugging. Abbildung 1 zeigt das Projekt eStudy in der PhpEclipse.

Abbildung 1, Oberfläche von EasyEclipse für PHP

In den nächsten Abschnitten werden die Features von PhpEclipse aufgezählt, Vorteile und Nachteile dieser Distribution angegeben und ein Fazit gezogen.

PHP-Editor

Das augenscheinlichste Merkmal von PhpEclipse ist das PHP-Editor-Plugin. Es bietet viele Hilfswerkzeuge zum Bearbeiten von PHP-Dateien. Dazu gehören das übersichtliche und anpassbare Syntaxhighliting, PrettyPrinter zum automatischen Formatieren des Quellcodes, und die Vorschläge bei der Codevervollständigung, wobei die Bezeichner aus dem gesamten PHP-Projekt untersucht werden.

Der PHP-Editor überprüft außerdem die Stellen im Code, an denen andere PHP-Dateien eingebunden werden. Wenn diese Dateien nicht im Projekt existieren, dann meldet der Editor an der entsprechenden Stelle eine Warnung.

Auch andere hilfreiche kleine Werkzeuge, die man von Eclipse kennt, sind in dieser Distribution enthalten (Öffne Datei unter Cursor, Füge Template ein usw.) Die Abbildung 2 zeigt einen Auschnitt aus dem Editor-Kontextmenü

Abbildung 2, Editor-Kontextmenu

Unittests

PhpEclipse enthält die Unterstützung für Modultests mit Hilfe des Testwerkzeuges PhpUnit (PhpUnit2 wird experimentell unterstützt). PhpUnit muss nicht extra installiert werden, sie ist bereits in der Distribution vorhanden. Die Tests können auch lokal statt auf dem Webserver stattfinden. Dazu wird in den Einstellungen des Testplugins der Pfad zu der PHP-Ausführungsdatei angegeben.

Die Ausführung der Tests ist sehr übersichtlich und ähnelt der vom JUnit-Plugin. (Ampelsemantik, Verweis zur Codestelle im fehlgeschlagegen Test, Liste der durchlaufenen Testmethoden usw.)

Abbildung 3, Testergebnisse im PhpUnit-Plugin

PhpUnit funktioniert ähnlich wie JUnit. Es werden Testmethoden geschrieben, welche die Methoden der zu testenden Klasse aufrufen und die Zusicherungen enthalten, um das erwartete Verhalten der Klasse zu beschreiben. Einzelne Testklassen können wie bei JUnit zu einer Testsuite zusammengefasst werden. Das folgende Listing zeigt eine Beispieltestklasse, die nur eine Testmethode enthält, welche immer durchläuft.

<?php
class test1 extends UnitTestCase
{
	function test_pass()
        {
		$x = 1;
		$y = 2;
		$total = $x + $y;
		$this->assertEqual(
                   3,
                   $total, 
                   "This should pass");
	}
}
?>

Im nächsten Listing sieht man, wie einzelne Tests in den Testsuiten zusammengefasst werden können.

<?php
class myGroupTest extends GroupTest
{
	function myGroupTest()
        {
	        parent :: GroupTest('');
		$this->addTestFile(
                   dirname(__FILE__) . '/test1.php');
		$this->addTestFile(
                   dirname(__FILE__) . '/test2.php');
	}
}
?>

Die Ausführung der Tests wird in PhpEclipse wie üblich über ‚run’->’run as simpletest’ initiiert.

Editoren und Validatoren

PhpEclipse enthält das Plugin Eclipse Web tools editors, mit dem man Dateien in XML, XML-Schema, XSL, DTD, HTML, JavaScript und CSS Formaten editieren und validieren kann. Die strukturierten Dokumente (z.B. in XML-Dateien) werden auf Wunsch in einer Explorer-artigen Baumansicht dargestellt (Abbildung 4). Das Plugin erlaubt es, XML-Dateien auf eine Grammatik hin zu überprüfen (SML-Schemas oder DTD). Dabei werden unpassende Elemente in dem XML-Dokument rot markiert und mit einer entsprechenden Fehlermeldung versehen (Abbildung 5).

Abbildung 4, Darstellung einer XML-Datei
Abbildung 5, Validierung einer XML-Datei gegen ein XML-Schema

Datenbankverwaltung

Für die Datenbankverwaltung wird in PhpEclipse das Plugin QuantumDB verwendet, das über einen ODBC-Treiber mit dem DBMS kommuniziert. Das Plugin unterstützt alle gängigen Standardwerkzeuge der Datenbankverwaltung wie direktes Ausführen von SQL-Abfragen, Tabellenansichten und Logs. Die grafische Oberfläche zum Definieren der Tabellenstruktur fehlt aber. Die Abbildung 6 zeigt die QuantumDB-Perspektive.

Abbildung 6, QuantumDB-Perspektive in PhpEclipse

Versionssteuerung

PhpEclipse enthält Clients für die Versionssteuerungssysteme CVS und Subversion (das letztere heißt Subclipse), die in die Navigator-Ansicht von Eclipse integriert sind. Die Clients bieten alle üblichen Features wie das Auschecken, Aktualisieren, Mergen und Einchecken von einzelnen Dateien oder ganzen Verzeichnissen. Der Status der Dateien und Verzeichnisse, die mit dem Dateiablageserver synchronisiert werden müssen, wird über grafische Symbole in der Navigatoransicht dargestellt. Die Abbildung 7 zeigt den integrierten Subversionclient.

Abbildung 7, Subversionclient

Fazit

EasyEclipse für PHP ist keine vollwertige Entwicklungsumgebung für PHP wie Eclipse für Java. Vor allem fehlen komplexere Codeuntersuchungsroutinen für die Codevervollständigung und die semantische Fehlersuche sowie der Remote Debugger und die automatisierbaren Refactoring-Schritte. Mangels großer Konkurrenz im Open-Source-Bereich kann diese Distribution aber empfohlen werden. Die IDE kombiniert Tools für fast alle Bereiche der Entwicklung mit PHP und zentralisiert damit die Entwicklung, welche sonst nur über ein Dutzend Einzeltools stattfinden konnte. Außerdem bringt Eclipse, die als Basisplattform für die PhpEclipse dient, selbst viele nützlichen Features mit sich. So können Ant-Scripte integriert und so das Deployment der Anwendung automatisiert werden.

Da PhpEclipse eigentlich „nur“ eine Sammlung von Eclipse-Plugins ist, können fehlende Features nachinstalliert oder bei Bedarf sogar selbst entwickelt werden. Andererseits kann auch eine bestehende Eclipse-Installation durch manuelle Installation der hier genannten Plugins zur PhpEclipse entwickelt werden.

Weblinks