Ich habe Xdebug auf einer lokalen Vagrant-Instanz eingerichtet, auf der Ubuntu läuft. Es funktioniert wie erwartet und ich kann Haltepunkte in meiner Anwendung einrichten.
Ich habe ein Szenario, in dem die Anwendung eine Anfrage an eine interne API stellt. Die interne API befindet sich auf demselben Server und derselben Codebasis.
Baumdarstellung
%Vor%Die Anwendung ist zugänglich wie Ссылка und die API zugänglich ist lokal als Ссылка ).
Wenn ich jetzt einen Haltepunkt in einigen Code für die API festgelegt und dann unter Ссылка wird der Breakpoint nur ausgelöst, wenn ich die Xdebug Sitzung für die erste Anwendung nicht initialisiert werden, das heißt, ich stelle nicht die XDEBUG_SESSION_START
Abfrageparameter. Wenn es gesetzt ist, wird mein Haltepunkt ignoriert.
Es gibt einen gewissen Nachteil. Wenn ich einen Haltepunkt in der Anwendung und die API habe, kann ich nicht beide auslösen im Moment. Entweder ich kann die Anwendung von Haltepunkten oder die API-Stützpunkte auslösen.
Ich bin mit Sublime Text 3 mit dem Plugin Ссылка . Meine Xdebug Einstellungen in php.ini
sind:
Ist das reparierbar? Alle Antworten / Kommentare sind willkommen!
Zwei Möglichkeiten. Wenn die erste (leichtere) nicht funktioniert, wird die zweite sicherlich.
Fügen Sie in der php.ini Ihren xdebug-Einstellungen Folgendes hinzu:
%Vor%Siehe Dokumentation hier
Sie müssen zwei separate Instanzen Ihres IDE / Texteditors haben, die xdebug anhören - jeweils an einem anderen Port. Sie können beide Instanzen so einstellen, dass sie dasselbe Projekt bearbeiten, während ihr xdebug-Dienst verschiedene Ports überwacht.
Beispiel:
Damit Ihre "interne API" xdebug auf Port 9001 ausführt, können Sie am Anfang Ihres "internen API" -Skripts einfach Folgendes tun:
%Vor% Verwenden Sie conditional breakpoints
. Sie können sie von jedem PHP-Code abhängig machen. Z.B. Setzen Sie für jeden Einstiegspunkt eine Konstante und überprüfen Sie sie. Oder überprüfen Sie die Anforderungs-URL.
Tags und Links php debugging sublimetext3 xdebug vagrant