Webseiten-Werkzeuge

Benutzer-Werkzeuge


Test von PHP-Skripten

Soll in einem PHP-Skript nach Fehlern gesucht werden, benötigt der PHP-Debugger eine JSON-Datei mit ein paar Angaben zum zu testenden Skript. Diese JSON-Datei muss in einem Unterordner mit dem Namen  .vscode  liegen.

Für den Einsatz von Visual Studio Code (kurz VS Code) mit print2forms ist der Inhalt der JSON-Datei sehr überschaubar:

launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Remote",
            "type": "php",
            "request": "launch",
            "port": 9000
        }
    ]
}

Da das Anlegen eines Unterordners mit dem Namen  .vscode  wegen des Punktes zumindest in Windows nicht ganz so einfach ist, kann VS Code diese Aufgabe selbst übernehmen.

Man startet VS Code und öffnet den Ordner mit dem zu bearbeitenden PHP-Skript. Nachdem man das Skript in das Editorfenster übernommen hat, startet man den Debugger. Dieser zeigt an, dass ihm die Datei lauch.json fehlt - erkennbar am roten Punkt neben dem Zahnrad.

Ein Klick auf das Zahnrad und die Auswahl der gewünschten Skriptsprache erzeugen eine Standardversion der Datei. Diese wird auf den oben angegebenen Inhalt gekürzt. Die Zeichenkette name kann dabei frei gewählt werden.



Fehlersuche starten

Für die eigentliche Fehlersuche ist es unabdingbar, dass in VS Code exakt das Skript geöffnet ist, das auch vom print2forms-Gateway aufgerufen wird. Eine Ausnahme von dieser Regel gilt nur, wenn VS Code auf einem anderen Rechner läuft als print2forms. Hier wird aber davon ausgegangen, dass sich alle Programme auf einem Rechner befinden.

Üblicherweise möchte man ein Skript an einer kritischen Stelle anhalten, um sich dann dort die Inhalte von Variablen ansehen zu können, und ab dann vielleicht in Einschritten das weitere Skript zu verfolgen. Zum Anhalten werden die sogenannten Haltepunkte benutzt, die an einem roten Punkt links neben der Zeilennummer erkennbar sind. Haltepunkte können mit einem einfachen Klick links neben die Zeilennummer gesetzt und auch wieder gelöscht werden. Das geht im Editor auch ohne dass der Debugger gestartet ist.

Sind die Haltepunkte gesetzt, kann der Debugger durch einen Klick auf das Käfersymbol aufgerufen werden. Am oberen Rand des Fensters erscheint die Statusleiste des Debuggers. Mit einem Klick auf den grünen Pfeil wird der Debugger gestartet. Ausser dass eine schwebende Leiste mit Symbolen zur Steuerung des Debuggers eingeblendet wird, passiert erst einmal nichts weiter.

Jetzt kann die Applikation gestartet werden, die das print2forms-Gateway mit Druckdaten versorgt. Sobald das Gateway die Daten empfangen, verarbeitet und die PCL- und Indexdatei (oder beim Monitor die hochgeladene Datei) abgelegt hat, wird der PHP-Interpreter unter Nutzung der Kommandozeile des Gateways aufgerufen.

Der PHP-Interpreter kommuniziert jetzt über eine interne Netzwerkverbindung (Port 9000) mit dem Debugger und mit VS Code. Sobald der Interpreter an einer Skriptzeile angelangt ist, an der ein Haltepunkt gesetzt ist, wird das im Fenster von VS Code angezeigt. Der Benutzer hat jetzt die Gelegenheit, sich die Inhalte von Variablen anzusehen oder in Einzelschritten durch das Skript zu gehen.

Ein Klick auf den grünen Pfeil in der schwebenden Leiste lässt das Skript - eventuell bis zum nächsten Haltepunkt - weiterlaufen. Das rote Quadrat beendet den Debugger.



Hinweise

  • Bei der Fehlersuche in Skripten kommen Laufzeiten zustande, die in den Bereich vieler Minuten gehen können. Die print2forms-Gateways haben eine Laufzeitüberwachung der gestarteten Skripte, die nach etwa fünf Minuten anschlägt. Dieser Wert ist in der Registry änderbar - was aber nicht nötig ist, wenn der für die Fehlersuche genutzte Druckauftrag nur genau ein einziges Paar von PCL- und Indexdateien erzeugt. Werden viele Einzeldruckaufträge erzeugt, kann es zu erheblicher Konfusion kommen, weil das Gateway nach fünf Minuten eine zweite PHP-Instanz startet!
  • Wird das Skript vorzeitig beendet - bei der Fehlersuche eigentlich ein Normalfall - kann es sein, dass vor dem erneuten Start des Skriptes manuell aufgeräumt werden muss. Das ist zum Beispiel beim Monitor-Gateway besonders wichtig, weil es das Skript gar nicht startet, wenn es meint, die Duplette einer Datei im Arbeitsverzeichnis gesehen zu haben!
print2forms/tips/tip71.txt · Zuletzt geändert: 2018-08-31 10:06 (Externe Bearbeitung)