Я удивлен, что никто еще не получил это. Существует рефакторинг специально для этого типа проблемы:
http://www.refactoring.com/catalog/decomposeConditional.html
Убедитесь, что у вас правильная версия XDebug для вашей версии PHP, и добавьте это в самое начало файла php.ini:
[xdebug]
zend_extension=full_path_to_your_xdebug.so
xdebug.default_enable=On
xdebug.remote_enable=On
xdebug.remote_handler="dbgp"
xdebug.remote_host="localhost"
xdebug.remote_port=9000
Затем выполните apachectl graceful
и phpinfo
и убедитесь, что XDebug присутствует и активен. Если это так, все должно работать нормально. Я знаю, что для меня это подходит.
edit: Я ответил перед тем, как прочитать весь вопрос.
перед запуском скрипта вы должны установить переменную окружения;
export XDEBUG_CONFIG="idekey=session_name"
Возможно, это можно сделать из php, но Я не могу это проверить:
putenv('XDEBUG_CONFIG="idekey=session_name"');
Вы должны убедиться, что в бинарном файле php, который вы используете, загружено расширение XDebug, в моей системе он есть в модуле apache, но в интерпретаторе CLI по умолчанию его нет, но я специально запускаю разные версии.
Здесь есть хорошая документация