Heim >Backend-Entwicklung >PHP-Tutorial >Debugging mit Xdebug und Sublime Text 3

Debugging mit Xdebug und Sublime Text 3

Joseph Gordon-Levitt
Joseph Gordon-LevittOriginal
2025-02-22 09:21:17848Durchsuche

Debugging mit Xdebug und Sublime Text 3

Debugging - Wir alle machen es viel. Das erste Mal, dass das erste Mal Code perfekt ist, ist schwierig und nur wenige (wenn überhaupt) gelten ihm. Vor mehr als einem Jahr schrieb Shameer einen Artikel über SitePoint darüber, wie Sie Ihre Anwendung mit XDEBUG und NetBeans debuggen können. In diesem Artikel werden wir uns ansehen, wie wir mit XDEBUG in Kombination mit Sublime Text debuggen können.

Key Takeaways

  • Um mit XDebug und Sublime Text 3 zu debuggen, muss die PHP XDEBUG -Erweiterung installiert und sublime Text 3 mit dem XDebug -Paket konfiguriert werden, das über Paketsteuerung installiert ist.
  • xDebug muss in der Datei php.ini oder in einer xDebug.ini -Datei mit bestimmten Einstellungen konfiguriert werden, und dann sollte der Webserver neu gestartet werden.
  • Für Sublime Text 3 muss das Projekt eingerichtet werden, und die URL der Webanwendung sollte zu den Einstellungen der Projektdatei hinzugefügt werden. Dies ermöglicht das Debuggen in mehreren Projekten, ohne die xDebug -Konfiguration jedes Mal ändern zu müssen.
  • Die XDEBUG -Sitzung kann gestartet werden und Haltepunkte können festgelegt werden, wo die Anwendung anhält. Von dort aus können Variablen inspiziert werden und die Anwendung kann bis zum nächsten Haltepunkt oder bis zum Ende mit verschiedenen Befehlen wie „Run“, „Schritt in“, „Schritt über“ und „Schritt raus“ ausgeführt werden.

Erste Schritte

Zunächst müssen wir die Php XDebug -Erweiterung installieren lassen. Wenn Sie sich nicht sicher sind, wie Sie dies erledigen können, sehen Sie sich bitte den Link an, der in der Einführung bereitgestellt wird. Stellen Sie sicher, dass XDEBUG funktioniert, indem Sie überprüfen, ob es in Ihrem Phpinfo () aufgeführt ist.
Natürlich brauchen wir auch erhabenen Text. Ich werde die neueste Version verwenden: Sublime Text 3. Es sollte auch mit Sublime Text 2.

funktionieren

XDEBUG

einrichten

Wir müssen XDEBUG konfigurieren, indem wir Ihre Php.ini-Datei Folgendes zu einer XDEBUG.ini-Datei hinzufügen, wie hier unter How-to on Linux beschrieben.

<span>xdebug.remote_enable=1
</span><span>xdebug.remote_handler=dbgp
</span><span>xdebug.remote_host=127.0.0.1
</span><span>xdebug.remote_port=9000
</span><span>xdebug.remote_log="/var/log/xdebug/xdebug.log"</span>

Im Allgemeinen werden Sie 127.0.0.1 als Host verwenden. Wenn Sie zum Beispiel Vagrant verwenden, werden Sie je nach Ihrem System so etwas wie 10.0.2.2 verwenden.

.

Das Remote -Protokoll ist nicht erforderlich, aber bei Problemen ist es der Ort, an dem Sie Informationen über Fehler finden können.

Vergessen Sie nicht, Ihren Webserver neu zu starten!

Erhabener Text einrichten 3

Eine der Stärken des Erhabenen ist die Tatsache, dass Sie sie leicht mit Paketen erweitern können. In diesem Fall werden wir das XDebug -Paket installieren. Wenn Sie dies noch nicht getan haben, stellen Sie sicher, dass Sie Pakete installieren können, indem Sie die Paketsteuerung installieren.


Sobald Sie die Paketsteuerung installiert haben, sollten Sie den Sublime -Text starten. 3. Öffnen Sie die Befehlspalette im Menü "Tools" und suchen Sie nach "Paket installieren". Debugging mit Xdebug und Sublime Text 3

Jetzt können Sie nach jedem Paket suchen, das Ihnen gefällt. In unserem Fall suchen wir nach dem Paket "XDEBUG -Client".
Debugging mit Xdebug und Sublime Text 3

Das letzte Stück, das wir tun müssen, ist, das Projekt innerhalb von Sublime einzurichten. Der einfachste Weg, dies zu tun, besteht darin, das Stammverzeichnis Ihrer Anwendung zu öffnen, zu Projekten zu gehen und auf „Projekte speichern“ zu klicken. Ich schlage vor, Sie speichern die Datei im Root Ihrer Anwendung, sodass Sie sie in Ihrem Versionskontrollsystem speichern können, wenn Sie irgendwelche verwenden, und Sie können sie jederzeit problemlos konfigurieren.

Öffnen Sie die gerade erstellte Projektdatei. Der Inhalt wird so aussehen:

<span>xdebug.remote_enable=1
</span><span>xdebug.remote_handler=dbgp
</span><span>xdebug.remote_host=127.0.0.1
</span><span>xdebug.remote_port=9000
</span><span>xdebug.remote_log="/var/log/xdebug/xdebug.log"</span>

Wir werden noch ein paar Zeilen hinzufügen:

<span>{
</span><span>    "folders":
</span><span>    [
</span><span>        {
</span><span>           "follow_symlinks": true,
</span><span>           "path": "."
</span><span>        }
</span><span>    ]
</span><span>}</span>

Wie Sie sehen, habe ich meiner tatsächlichen Webanwendung nur eine URL hinzugefügt. Ich könnte weitere Einstellungen für XDEBUG einstellen. Dies reicht jedoch aus, um mit zu beginnen. Ich hätte diese URL auch in den XDebug -Einstellungen selbst festlegen können, aber in diesem Fall konnte ich nicht an mehreren Projekten arbeiten, ohne jedes Mal die XDEBUG -Konfiguration zu ändern.

Starten Sie die XDEBUG -Sitzung

Wir können jetzt die XDebug -Sitzung starten, um festzustellen, ob alles richtig eingerichtet ist. Klicken Sie im Menü auf Tools -> xDebug und klicken Sie auf Start Debugging (Startbrowser). Sie werden feststellen, dass Ihre Website geöffnet ist und dass? Dadurch wird die XDebug -Sitzung gestartet. In Sublime erscheinen einige zusätzliche Panels dort, wo Debug -Informationen angezeigt werden, nachdem Sie einen oder mehrere Haltepunkte festgelegt haben.

Breakpoints

Lassen Sie uns den ersten Haltepunkt auslegen. Ein Haltepunkt ist im Grunde ein Flag, in dem Ihre Bewerbung beim Erreichen des Erreichens annimmt. Im Moment, in dem es annimmt, können Sie alle Werte der Variablen inspizieren, damit Sie tatsächlich wissen, was los ist.

Wir können einen Breakpoint hinzufügen, indem wir mit unserer rechten Maus in einer Zeile klicken, zu XDebug gehen und dann auf den Haltepunkt hinzufügen/entfernen. Ein Marker wird zur Zeilenrinne hinzugefügt, um anzuzeigen, dass ein Haltepunkt festgelegt wurde.

Debugging mit Xdebug und Sublime Text 3

Wir öffnen unseren Browser erneut und fahren mit der Sitzung fort, die wir gerade angefangen haben. Sie werden feststellen, dass sobald Sie zur Seite gehen, auf der sich der Haltepunkt befindet, die Seite nicht mehr lädt. Wenn Sie jetzt Sublime öffnen, sehen Sie viele Informationen, die in den XDebug -Panels angezeigt werden.

Der XDEBUG -Stack und der Xdebug -Kontext sind sehr interessant. Im Stapel können Sie den gesamten Stacktrace sehen, den Ihr Anruf durchlief.

Im Kontext sehen Sie alle globalen Variablen, aber auch die Variablen, die Sie selbst definiert haben. Sie können auf diese Variablen klicken, um zu sehen, dass genau diese Variablen gehalten werden. Zum Beispiel habe ich im folgenden Screenshot auf die Variable $ _server geklickt.

Debugging mit Xdebug und Sublime Text 3

Beachten Sie, dass ein gelber Pfeil auf die Zeile zeigt, auf die die Anwendung derzeit gestoppt ist.

Also hörte unsere Anwendung an und jetzt können wir die definierten Variablen durchsehen. Wir sind jedoch fertig und wollen weitermachen. Was jetzt? Wenn Sie die rechte Maus noch einmal klicken und über das XDebug -Menü schweben, haben Sie mehrere Optionen:

  • Führen Sie die Anwendung bis zum nächsten Haltepunkt oder bis zum Ende aus.
  • Ausführen zur Zeile, die bis zu der von Ihnen geklickten Zeile ausgeführt wird.
  • Schritt in die aktuelle Funktion einsteigt und gleich danach bleibt.
  • Schritt über die aktuelle Funktion und bleibt gleich danach gestellt.
  • Schritt aus der aktuellen Funktion heraus und stoppt gleich danach.
  • Stopp hört auf zu debuggen.
  • detach wird auch aufhören zu debuggen.

Lauf und Stopp sind leicht zu verstehen. Die Schrittmethoden könnten etwas verwirrend sein. Lassen Sie uns diese mit einem einfachen Beispiel eintauchen.

<span>xdebug.remote_enable=1
</span><span>xdebug.remote_handler=dbgp
</span><span>xdebug.remote_host=127.0.0.1
</span><span>xdebug.remote_port=9000
</span><span>xdebug.remote_log="/var/log/xdebug/xdebug.log"</span>

Stellen Sie sich vor, Sie haben der ersten Zeile der Methodenleiste einen Haltepunkt hinzugefügt. Also in der Linie mit dem Breakpoint -Kommentar (// Breakpoint).

Mit einem Schritt in den Debugger tritt der Debugger in die Foobar -Methode ein und hält hier in der ersten Zeile an. In diesem Fall wird der Debugger die Rückgabearray_Values ​​($ arr) anhalten. Zeile.

Schritt übernimmt die Methode, wird aber nicht aufhören. Es wird an der nächsten verfügbaren Zeile stehen, nachdem die Methode aufgerufen wurde. In diesem Fall wird es bei der Rückkehr $ arr;

aufhören

Schließlich wird es mit Schritt aus der gesamten Balkenmethode durchlaufen und zum Anrufer zurückkehren. In diesem Fall geht es aus dem Objekt zurück zum ursprünglichen Anrufer.

Wenn Sie sich nur für die Ausführung entscheiden, wird die Anwendung bis zu dem Moment, in dem die Ausführung oder einen anderen Haltepunkt stattfindet, weiter ausgeführt.

Schlussfolgerung

In diesem Artikel haben wir gesehen, wie wir XDebug mit Sublime integrieren konnten, und haben sichergestellt, dass wir verstanden haben, wie man debuggen. Fast jede für PHP geeignete Ideen kann sich in Xdebug integrieren. Wenn Sie daran interessiert sind, solche in NetBeans zu debuggen, sehen Sie sich den in der Einführung erwähnten Artikel an. Verwenden Sie Haltepunkte? Oder verwenden Sie PHP -Funktionen wie var_dump, um Ihre Debug -Daten zu erhalten? Lassen Sie uns in den Kommentaren unten wissen!

häufig gestellte Fragen (FAQs) zum Debuggen mit XDebug und Sublime Text 3

Wie installiere ich XDebug für Sublime Text 3? Dies kann durch das Herunterladen der entsprechenden DLL -Datei von der XDebug -Website und dem Hinzufügen zu Ihrem PHP -Erweiterungsverzeichnis erfolgen. Danach müssen Sie Ihre Php.ini -Datei so ändern, dass die XDEBUG -Erweiterung einbezieht. Sobald die XDEBUG -PHP -Erweiterung installiert ist, können Sie das XDebug -Paket für Sublime Text 3 mithilfe von Paketsteuerung installieren.

Wie konfiguriere ich XDebug für Sublime Text 3?

Konfigurieren von XDebug für Sublime Text 3 Beinhaltet die Änderung Ihrer Php.ini -Datei und Ihren Sublime Text 3 -Einstellungen. In Ihrer Php.ini -Datei müssen Sie die Einstellungen von xDebug.remote_enable und xdebug.remote_autostart festlegen. In Ihren sublime Text 3 -Einstellungen müssen Sie den Pfad zu Ihrem PHP -ausführbaren Datum angeben und die Portnummer, die XDebug für Kommunikation verwenden sollte .

Warum funktioniert XDebug nicht in sublime Text 3?

Wenn Xdebug arbeitet nicht in Sublime Text 3, es kann mehrere Gründe geben. Ein häufiges Problem ist, dass die XDEBUG -PHP -Erweiterung nicht korrekt installiert oder konfiguriert ist. Ein weiteres Problem könnte sein, dass das XDEBUG -Paket für Sublime Text 3 nicht korrekt installiert oder konfiguriert ist. Es ist auch möglich, dass es ein Problem mit Ihren PHP- oder Sublime -Text -3 -Einstellungen gibt. Sublime Text 3, Sie müssen zunächst einen Haltepunkt in Ihrem Code festlegen. Dies kann erfolgen, indem Sie in die Dachrinne neben der Codezeile klicken, in der Sie den Haltepunkt möchten. Sobald der Haltepunkt festgelegt ist, können Sie die Debugging -Sitzung starten, indem Sie aus dem XDebug -Menü "Debugging" auswählen. kann xDebug mit Sublime Text 3 auf einem Mac verwenden. Der Prozess zur Installation und Konfiguration von XDEBUG auf einem Mac ähnelt dem Prozess für Windows, es gibt jedoch einige Unterschiede. Zum Beispiel kann der Ort der Php.ini -Datei und des PHP -Erweiterungsverzeichnisses unterschiedlich sein. XDEBUG In Sublime Text 3 müssen Sie die Funktion „Watch“ verwenden. Auf diese Weise können Sie Variablen angeben, die Sie während der Debugging -Sitzung überwachen möchten. Wenn sich eine beobachtete Variable ändert, wird ihr neuer Wert im XDebug -Bereich angezeigt. Sublime Text 3. Dies erfolgt mit den Befehlen "Schritt über", "Schritt in" und "Schritt aus". Mit diesen Befehlen können Sie die Ausführung Ihrer Codezeile nach Zeile steuern und die Identifizierung und Behebung von Fehler erleichtern. In einer Debugging -Sitzung in Sublime Text 3 können Sie den Befehl „Debugging stoppen“ im XDEBUG -Menü verwenden. Dadurch wird die Debugging -Sitzung beendet und die Steuerung in Sublime Text 3.

kann ich Remote -PHP -Anwendungen mit XDebug- und Sublime -Text 3? Sublime Text 3.. Dies erfordert eine zusätzliche Konfiguration, einschließlich der Einstellung der xDebug.remote_host und xdebug.remote_port -Einstellungen in Ihrem Php.ini -Datei.

Wie aktualisiere ich XDebug in Sublime Text 3?

, um XDebug in Sublime Text 3 zu aktualisieren. Aktualisiert, indem Sie die neueste DLL -Datei von der XDebug -Website herunterladen und die vorhandene DLL -Datei in Ihrem PHP -Erweiterungsverzeichnis ersetzen. Das XDEBUG -Paket für Sublime Text 3 kann mithilfe der Paketsteuerung aktualisiert werden.

Das obige ist der detaillierte Inhalt vonDebugging mit Xdebug und Sublime Text 3. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn