Я довольно отчаянным и иссякают идеи:Breakpoints не попал с Xdebug, PhpStorm и Laravel 3/mod_rewrite
Я настроил XDebug и PhpStorm для проекта Laravel 3. Запуск проекта локально в Mac OS X Apache, поэтому PhpStorm и веб-приложение запускаются на одном компьютере. Настроил виртуальный хост, чтобы localhost.lt указывал на общий каталог Laravel.
Соответствующие записи Xdebug в 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
Подтверждена, что расширение будет загружена.
Настройте конфигурацию отладки/запуска PHP Web Application без каких-либо сопоставлений путей, поскольку ничто не символически связано, а папки на веб-сервере и PhpStorm точно такие же (как веб-сервер на одном компьютере).
При запуске с помощью «Debug» из IDE, xdebug_remote.log правильно показывает точку останова, которые мы установили в одном из файлов в приложения/библиотеки:
<- 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>
Однако, когда мы нажмите на ссылку, вызывает функцию из библиотеки LiveTime.php, точка останова НЕ попадает. В журнале:
<- 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
Как много рамок, Laravel использует .htaccess mod_rewrite для труб всего через общественный/index.php. Может быть, это послужит причиной того, что PhpStorm/xdebug не поймает точку останова в приложении/library/LiveTime.php, поскольку она появляется в xdebug, что сценарий LiveTime.php никогда не выполняется?
Если да, то как мы можем решить эту проблему?
Кроме того, xdebug_break(); работает всегда, поэтому он не связан с неправильно сконфигурированной средой PHP. – Ralf
Мне бы очень хотелось узнать ответ на этот вопрос! – kreeves
У меня такая же проблема, только я использую Symfony, и она ломается в некоторых файлах, но не в других. xdebug_break(); работает везде. – greg