Хотя теперь я понимаю, что попытка заставить Eclipse остановиться на ваших контрольных точках, когда скрипты PHP выполняются из запросов POST и GET из ajax/curl, заключается в том, чтобы убедиться, что переменная XDEBUG_START_SESSION
установлена во всех запросах, которые вы хотите, чтобы отладчик был известно, что это работает только тогда, когда все ваши пути на веб-сервере являются нормальным относительным видом.
Тем не менее, если у вас есть некоторые псевдонимы на веб-сервере, например, с помощью директивы httpd Alias, XDebug не сможет связать пути файлов в вашей рабочей области с их путем в URL-адресе сайта.
У меня есть следующая настройка каталогов:
Вот как настраивается веб-сервер:
ServerName test.local
DocumentRoot "C:\Users\me\projects\testproject\start\here"
Alias /post "C:\Users\me\projects\testproject\post"
<Directory "C:\Users\me\projects\testproject">
Require all granted
</Directory>
Я бы подумал, что это вкладка "Отображение пути", найденная в " Debug Configurations → Server → Configure... → Path Mapping
. Всюду, где я смотрю, мне говорят, чтобы установить Path on server
на путь файловой системы на веб-сервере для каталога или файла и установить Local path
к его пути в вашей файловой системе или рабочей области. Я также попытался установить Path on server
на путь URL-адреса сайта, который я хотел сопоставить с Local path
, но ни одна из конфигураций не приводит к разрыву строки в сценарии POSTed PHP.
Я включил ведение журнала для XDebug, чтобы сравнить сообщения для точки останова, что она правильно останавливается, потому что она находится в файле, от которого начинается отладчик, и точка останова в скрипте, выполненном посредством запроса POST, который, к сожалению, не останавливается. Он остановится в этом файле, если путь /post
соответствует каталогу сообщений в DocumentRoot
, но не в том случае, если почтовая директория находится где-то в другом месте, а "поддельный" /post
путь в URL-адресе сайта сглажен.
В моем файле журнала XDebug имеется несколько записей журнала для строки 28 в index.php, файл, для которого он правильно разбивается. Строка 3 в message.php также имеет запись, а путь с URL-кодировкой выглядит корректно, но я не вижу те же записи.
Как настроить Eclipse, чтобы знать, что /post
на сервере означает /My Project/post
в рабочей области?
Ой... это был просто вопрос установки Accept удаленного сеанса (JIT) на локальный, в моем случае, или просто что - нибудь, кроме off
:
Это здорово подтвердить, что это в принципе работает, но я все еще смущен тем, почему это не в гораздо более сложном проекте. Если повезет, у меня будет больше возможностей поделиться...