Haltepunkte keine Treffer mit xdebug, PhpStorm und Laravel 3 / mod_rewrite

Ich bin ziemlich verzweifelt und langsam die Ideen aus:

Habe ich konfiguriert xdebug und PhpStorm für Laravel 3-Projekt. Ausgeführt wird das Projekt lokal auf Mac OS X, Apache, so PhpStorm und die web-Anwendung auf der gleichen Maschine laufen. Konfiguriert einen virtuellen host, so dass "localhost".lt Punkte zu Laravel öffentlichen Verzeichnis.

Relevanten xdebug Einträge in php.ini:

zend_extension = /usr/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so
[xdebug]
xdebug.idekey="PHPSTORM"
xdebug.remote_enable=1
xdebug.profiler_enable=1
xdebug.remote_log=/var/log/xdebug_remote.log
xdebug.remote_connect_back=1

Bestätigt, dass die Erweiterung geladen wird.

Einrichten einer PHP-Web-Anwendung Debuggen /ausführen-Konfiguration ohne Pfad-mappings als nichts ist symlinked und die Ordner auf dem web-server und PhpStorm sind genau die gleichen (wie der Webserver auf der gleichen Maschine).

Beim Start über "Debug" aus der IDE-xdebug_remote.log korrekt zeigt den Haltepunkt haben wir in einer der Dateien in application/libraries:

<- breakpoint_set -i 5 -t line -f
file:///Users/RalfR/src/livetime/application/libraries/LiveTime.php -n 676
->
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="5" id="9230016"></response>

Jedoch, wenn wir auf einen link klicken, ruft die Funktion aus der LiveTime.php Bibliothek, der Haltepunkt erreicht wird. Das log zeigt:

<- stack_get -i 6 -> 
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="stack_get" transaction_id="6"><stack where="{main}" level="0" type="file" filename="file:///Users/RalfR/src/livetime/public/index.php" lineno="14"></stack></response>

<- run -i 7 -> 
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="run" transaction_id="7" status="stopping" reason="ok"></response>

<- run -i 8
Log closed at 2013-04-22 21:03:57

Als viele frameworks, Laravel verwendet .htaccess mod_rewrite zu pipe alles durch public/index.php. Kann dies die Ursache für PhpStorm /xdebug nicht fangen die breakpoint in application/libraries/LiveTime.php wie es scheint, dass die xdebug LiveTime.php script wird nie ausgeführt?

Wenn ja, wie können wir dieses problem lösen?

  • Auch, xdebug_break(); funktioniert immer, so dass es nicht mit einem falsch konfigurierten PHP-Umgebung.
  • Ich würde gerne wissen, die Antwort auf diese als gut!
  • Ich habe das exakt gleiche Problem, nur ich bin mit Symfony und es bricht in einige Dateien, andere aber nicht. xdebug_break(); funktioniert überall.
InformationsquelleAutor Ralf | 2013-04-22
Schreibe einen Kommentar