Haltepunkte in zwei Anwendungen, die dieselbe Codebasis mit Xdebug verwenden

8

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:

%Vor%

Ist das reparierbar? Alle Antworten / Kommentare sind willkommen!

    
Kevin Sjöberg 03.06.2014, 18:18
quelle

2 Antworten

1

Zwei Möglichkeiten. Wenn die erste (leichtere) nicht funktioniert, wird die zweite sicherlich.

1 - Starten Sie eine neue Xdebug-Sitzung für jede http-Anfrage.

Fügen Sie in der php.ini Ihren xdebug-Einstellungen Folgendes hinzu:

%Vor%

Siehe Dokumentation hier

2 - Führen Sie zwei Xdebug-Sitzungen gleichzeitig aus.

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:

  • Ihre "Bewerbung" - & gt; Port 9000
  • Ihre "interne API" - & gt; Port 9001

Damit Ihre "interne API" xdebug auf Port 9001 ausführt, können Sie am Anfang Ihres "internen API" -Skripts einfach Folgendes tun:

%Vor%     
user3751385 19.06.2014, 23:13
quelle
0

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.

    
pgampe 06.06.2014 00:44
quelle