Webseiten-Werkzeuge

Benutzer-Werkzeuge


Visual Studio Code für PHP installieren

In Laufe der Jahre entschliessen sich immer mehr Kunden und auch die SPE selbst, für die Erstellung von Skripten für Gateways nicht mehr die Skriptsprache Perl zu verwenden, sondern die Sprache PHP. Das hängt vor allem damit zusammen, dass sich jüngere Programmierer im Rahmen ihrer Ausbildung sehr wohl mit PHP aber selten mit Perl beschäftigt haben.

In diesem Beitrag soll nun gezeigt werden, wie sehr elegant in in PHP geschriebenen Skripten nach Fehlern gesucht werden kann. Grundlage dafür ist natürlich eine IDE (Integrierte Entwicklungsumgebung). Microsoft bietet mit dem kostenlosen Produkt Visual Studio Code eine sehr kompakte Alternativ zu mächtigen Entwicklungsumgebungen wie etwa Eclipse oder NetBeans, die wir bisher eingesetzt haben.

Mit Hilfe von Visual Studio Code (kurz VS Code) wird im folgenden gezeigt, wie sich print2forms-Gateway-Skripte effektiv debuggen lassen.



Es wird dazu angenommen, dass VS Code auf dem Rechner läuft, auf dem auch die print2forms-Gateways ausgeführt werden. Prinzipiell ist es auch möglich über das Netz auf einem anderen Rechner zu debuggen. Das ist allerdings aufwändiger zu konfigurieren. Hiweise dazu finden sich weiter unten.

Installation

Zunächst muss VS Code auf dem Rechner installiert werden, auf dem der print2forms Client-/Gateway-Service läuft. Für unsere Ansprüche genügt es, wenn die Erweiterung PHP Debug mit installiert wird. Wie das geht, beschreibt die Dokumentation von VS Code.

Als nächstes muss die PHP Installation vorbereitet werden. Es wird eine Erweiterung zum Debuggen benötigt: XDebug. Diese wird häufig bereits mit PHP mitgeliefert (z.B. im XAMPP Paket). Eventuell muss sie allerdings nachinstalliert werden.

Um festzustellen, ob XDebug bereits installiert ist, wird eine Kommandozeile geöffnet, in das Verzeichnis der PHP-Installation gewechselt (in der die php.exe liegt) und dort der Befehl  php -i > phpinfo.txt  ausgeführt. Danach kann die entstandende Datei phpinfo.txt mit einem Editor geöffnet werden. Der Inhalt wird nun in die Zwischenablage kopiert und in das Eingabefeld auf der XDebug-WebSite eingefügt. Nach einem Klick auf die Schaltfläche Analyse my phpinfo() output (unten links) erhält man eine Ausgabe, in der steht, ob XDebug installiert ist oder nicht.

Sollte XDebug nicht installiert sein, erhält man - falls man aktuell PHP 7 installiert hat - einen Vorschlag für die korrekte Version der XDebug-DLL. Ansonsten muss man die korrekte Version für die eigene PHP-Installation selbst auswählen. Ist die DLL heruntergeladen, wird sie in den Unterordner ext des PHP-Installationsverzeichnisses kopiert.

Damit PHP von der Existenz des Debuggers weiss, muss in der Datei php.ini im Installationsverzeichnis von PHP eine Änderung vorgenommen werden. In dieser INI-Datei gibt es eine Sektion mit dem Namen [XDebug] (ziemlich am Ende der Datei).

Der Wert für die Konfigurationsvariable zend_extension muss auf den Pfad zur XDebug-DLL gesetzt werden. Etwa:

[XDebug]
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"

In der Sektion [XDebug] gibt es weitere - wahrscheinlich auskommentierte - Variablen, die wie folgt gesetzt werden sollten:

xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_host = "127.0.0.1"
xdebug.remote_port = 9000

Damit sind die Installationsarbeiten abgeschlossen. VS Code kann jetzt zum Erstellen von Skripten und zur Fehlersuche in PHP-Skripten für print2forms-Gateways genutzt werden.

Hinweise

  • Wichtig: Diese Änderungen an der php.ini müssen wieder rückgängig gemacht werden, sobald das Debugging abgeschlossen ist. Eine dauerhafte Verwendung von XDebug stellt sowohl eine Sicherheitslücke, als auch eine Performance-Bremse dar. Außerdem musste der Port (hier 9000) unter Umständen in der Firewall freigegeben werden, wenn print2forms von einem anderen Rechner aus via Netzwerk debuggt wird.
  • Wenn print2forms auf einem anderen Rechner installiert wird, als der, auf dem print2forms läuft, muss in der php.ini für die Konfigurationsvariable xdebug.remote_host die IP-Adresse des Rechners mit print2forms angegeben werden. Sollten sich die Skript-Verzeichnisse auf den beiden Rechnern unterscheiden, muss in der launch.json noch der Wert pathMappings richtig gesetzt werden. Ein Beschreibung dafür findet sich in der Dokumentation der Visual Code Erweiterung PHP Debug.
  • Generell ist die Wahl der Skriptsprache in print2forms nirgends festgelegt. Was auf dem Rechner verfügbar ist, kann verwendet werden: Perl, PHP, Python, Javascript, Java, C, C++, Basic, etc.
print2forms/tips/tip70.txt · Zuletzt geändert: 2018-08-31 10:02 (Externe Bearbeitung)