Сервер XDebug та RESTful за допомогою PHPStorm або POSTman


75

Як я можу змусити клієнта REST (наприклад, вбудованого в PHPStorm або POSTman ) працювати з XDebug?

У моєму поточному налаштуванні XDebug, використовуючи PHPStorm та Bookmarklet, я маю змогу змусити його працювати як у Chrome, так і у Firefox - але як тільки я спробую з POSTman або іншим клієнтом REST, я не можу зрозуміти, для початку.

Ура.


1
Використовуйте цю піктограму "ручка телефону", щоб IDE почав прослуховувати з'єднання для налагодження. Потім налаштуйте xdebug (php.ini) для налагодження кожного php-сценарію ( xdebug.remote_autostart = 1), або ж подивіться, чи XDEBUG_SESSION_START={{name}}допоможе додавання параметра початку сеансу xdebug ( ) до URL-адреси: xdebug.org/docs/remote . Або .. Ви можете передати файл cookie xdebug як один із заголовків (наприклад, той, який встановлений за допомогою bookmarklet). Крім цього: youtrack.jetbrains.com/issue/WI-17031
LazyOne

2
Я намагався уникнути запуску XDEBUG при кожному запиті - однак додавання ?XDEBUG_SESSION_START=PHPSTORMв кінець URL-адреси спрацьовує. (трохи брудне рішення, але таке, що працює)
Деніел Холландс,

Відповіді:


188

Поки не буде впроваджено http://youtrack.jetbrains.com/issue/WI-17031 , ви можете спробувати один із таких підходів:

  1. Налаштуйте свій xdebug (редагуючи php.ini), щоб спробувати налагодити кожен php-скрипт ( xdebug.remote_autostart = 1)

  2. Додайте параметр початку сеансу xdebug до фактичної URL-адреси ( XDEBUG_SESSION_START={{KEY}}- http://xdebug.org/docs/remote ), наприклад:?XDEBUG_SESSION_START=PHPSTORM

  3. Передайте файли cookie xdebug як один із заголовків (наприклад, той, який встановлений за допомогою закладки або розширення браузера)

Щоб це працювало - переконайтеся, що Run | Start Listen for PHP Debug Connectionзаздалегідь активовано піктограму "ручка телефону" ( ).


2
Спасибі за вашу відповідь. Як я вже говорив вище, другий працював у мене, хоча, думаю, мені було б цікавіше спробувати реалізувати третій - моя єдина проблема полягає в тому, що я не мав жодної радості при встановленні файлів cookie через POSTman або PHPStorm. У будь-якому випадку це зараз працює, тож дякую :)
Деніел Холлендс

2
Якщо хтось використовує розширення REST Console chrome, додаючи XDEBUG_SESSION_START як ключ і PHPSTORM як значення в Запит корисного навантаження (параметри запиту) спрацювало для мене
RonnyKnoxville

15
Це вирішило мою проблему, мені довелося поставити fqdn / rest / route? XDEBUG_SESSION_START = PHPSTORM , мені тоді також довелося додати до заголовка: Cookie: XDEBUG_SESSION = PHPSTORM. Зараз я налагоджую спокійний сервіс, тому це було
важливо

Перша відповідь спрацювала для мене; Мені цікаво знати, чи спричиняє це помітне уповільнення у вікні розробника, якщо PhpStorm не слухає під час запуску сценарію.
M1ke

1
@ M1ke Буде приблизно 1 сек затримки, поки xdebug намагається підключитися до налагоджувального клієнта (для кожного запиту / основного сценарію).
LazyOne

2

Це зводило мене з розуму. Я щойно оновився до PHP 7.1 і xdebug, який працював, більше не працював. Я оновив xdebug.soфайл (Linux) і php --versionвказав, що xdebug справді завантажується і працює. Але коли я користувався поштаркою, налагоджувач ніколи не запускався.

Ось рішення. Якщо ви використовуєте Apache як свій сервер, вам потрібно увімкнути моди PHP 7.1 та перезавантажити Apache:sudo service apache2 restart


Це вирішило проблему для мене. Я використовую Valet, так робить valet stopі valet startзробив трюк.
leonardfactory

1
xdebug.remote_timeout = 60000

Працював у мене. Оскільки мій Mac працював дуже повільно, а віддалений налагоджувач минув через 200 мс (значення за замовчуванням)


0

Попередження !

xdebug> = 3.0 змінив параметри в php.ini. Після оновлення xdebug більшість відповідей тут не будуть актуальними.

Зверніться до: https://xdebug.org/docs/upgrade_guide

По суті, вам потрібно додати щось подібне до вашого php.ini:

xdebug.mode=develop,gcstats,coverage,profile,debug
xdebug.start_with_request=1
xdebug.idekey=PHPSTORM
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.