/ php

Ошибка XDEBUG при выполнении CURL_EXEC

Совсем недавно я писал парсер, который пытался отладить в PHPStorm xdebug-ом. И каково было моё удивление, когда я увидел, что при выполнении функции curk_exec сессия дебага просто сбрасывалась. Но, ещё большее удивление вызвала простота решения этой проблемы.

Для того, чтобы решить эту проблему, нужно сначала понять, что на самом деле происходит. Так получается, что при выполнении curl_exec, IDE пытается открыть второе соединение, которым и получить информацию по CURL-запросу.

Зная это, посмотрим настройки отладки в PHPSTORM: File | Settings | Languages & Frameworks | PHP | Debug
Во вкладке External connections, параметр Max.simultaneous connections и отвечает за возможность создания нескольких подключений одновременно.

В моём случае (как и по умолчанию) этот параметр равен 1.

Достаточным значением для работы будет - 2. Что сделает возможным создание одновременно двух подключений. Для устранение сброса сессии при выполнении curl_exec этого вполне достаточно.

И теперь, новая конфигураци выглядит так:
new-config

После сохранения, можно попробовать выполнить CURL запрос:
result
Что демонстрирует ожидаемую работу отладчика.

Резюме

В этой статье, я показал, как нужно настроить PHPSTORM, чтобы отладка работала с CURL запросами (curl_exec). И объяснил, почему возникает ошибка при вызове curl_exec.
Эта статья не является самостоятельным руководством, это лмшь полнением к прошлым статьям по:
установке и настройке xdebug в phpstorm
и устранию ошибок запуска xdebug на OpenServer