отладка php кода в phpstorm

Отладка PHP 8 с помощью Xdebug 3 в PHPStorm

В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

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

Собственно, так как многим рекурсия показалась сложной, то я решил сделать урок по отладке кода на PHP 8. В этой статье мы рассмотрим настройку отладки с помощью PHP-расширения Xdebug, а производить отладку мы будем в уже известной нам IDE PHPStorm.

Настройка отладки PHP 8 в OpenServer

отладка php кода в phpstorm. 20210711b008a4559caba4c1f887cddf6596c461611e91058f39f6de6fceaa7dc5060efe. отладка php кода в phpstorm фото. отладка php кода в phpstorm-20210711b008a4559caba4c1f887cddf6596c461611e91058f39f6de6fceaa7dc5060efe. картинка отладка php кода в phpstorm. картинка 20210711b008a4559caba4c1f887cddf6596c461611e91058f39f6de6fceaa7dc5060efe. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

И раскомментируйте её, убрав ; в начале строки, чтобы получилось вот так:

Затем находим секцию [xdebug]

Здесь нам нужно раскомментировать/изменить значения параметров на следующие:

отладка php кода в phpstorm. 202107118991646a0537b708f7cea13fbcf84e88618db23b3bc8433ffcfb13f6c8d3e70c. отладка php кода в phpstorm фото. отладка php кода в phpstorm-202107118991646a0537b708f7cea13fbcf84e88618db23b3bc8433ffcfb13f6c8d3e70c. картинка отладка php кода в phpstorm. картинка 202107118991646a0537b708f7cea13fbcf84e88618db23b3bc8433ffcfb13f6c8d3e70c. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

После этого сохраните файл (CTRL + S) и перезапустите веб-сервер.

отладка php кода в phpstorm. 202107113fcf68017f8ea4d24e7e802fa2343c278b060a6d2e8a17375db427e8408b0c5f. отладка php кода в phpstorm фото. отладка php кода в phpstorm-202107113fcf68017f8ea4d24e7e802fa2343c278b060a6d2e8a17375db427e8408b0c5f. картинка отладка php кода в phpstorm. картинка 202107113fcf68017f8ea4d24e7e802fa2343c278b060a6d2e8a17375db427e8408b0c5f. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

На этом настройка веб-сервера для отладки завершена.

Настройка отладки в PHPStorm

В секции Xdebug задаём следующие настройки:

отладка php кода в phpstorm. 20210711cc544066e97484c142ed0dc1f352583223fb7f666403d58978595f660c1c6c54. отладка php кода в phpstorm фото. отладка php кода в phpstorm-20210711cc544066e97484c142ed0dc1f352583223fb7f666403d58978595f660c1c6c54. картинка отладка php кода в phpstorm. картинка 20210711cc544066e97484c142ed0dc1f352583223fb7f666403d58978595f660c1c6c54. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

Теперь в верхнем правом углу PhpStorm находим кнопку Add configuration

отладка php кода в phpstorm. 20210711035826b082d8f978830a13d614bb741e9989b71f38927178199322c6635460b2. отладка php кода в phpstorm фото. отладка php кода в phpstorm-20210711035826b082d8f978830a13d614bb741e9989b71f38927178199322c6635460b2. картинка отладка php кода в phpstorm. картинка 20210711035826b082d8f978830a13d614bb741e9989b71f38927178199322c6635460b2. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

В появившемся окне жмем на плюсик и выбираем пункт PHP Remote Debug.

отладка php кода в phpstorm. 20210711db798d9440eb4cba9704bef1ce087890b385db0f34ead5ed556e8cfadbce548c. отладка php кода в phpstorm фото. отладка php кода в phpstorm-20210711db798d9440eb4cba9704bef1ce087890b385db0f34ead5ed556e8cfadbce548c. картинка отладка php кода в phpstorm. картинка 20210711db798d9440eb4cba9704bef1ce087890b385db0f34ead5ed556e8cfadbce548c. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

В поле Name пишем XDebug.

Ставим галочку напротив пункта «Filter debug connection by IDE key». В поле IDE key пишем «PHPSTORM». Напротив пункта Server нажимаем на три точки. При помощи плюсика добавляем новый сервер. Заполняем поля как на скриншоте ниже:

отладка php кода в phpstorm. 20210711ae9f679c1f820f8fe5949142484c8a1fd985ea18187d007a28362240f95def09. отладка php кода в phpstorm фото. отладка php кода в phpstorm-20210711ae9f679c1f820f8fe5949142484c8a1fd985ea18187d007a28362240f95def09. картинка отладка php кода в phpstorm. картинка 20210711ae9f679c1f820f8fe5949142484c8a1fd985ea18187d007a28362240f95def09. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

Жмём ОК и выбираем только что добавленный сервер. Должно получиться так:

отладка php кода в phpstorm. 20210711093ee3d87ac19c5dcf406194ee212d3249a9441a6ee57165613fff4bbdf5c037. отладка php кода в phpstorm фото. отладка php кода в phpstorm-20210711093ee3d87ac19c5dcf406194ee212d3249a9441a6ee57165613fff4bbdf5c037. картинка отладка php кода в phpstorm. картинка 20210711093ee3d87ac19c5dcf406194ee212d3249a9441a6ee57165613fff4bbdf5c037. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

После чего снова жмём ОК.

Настройка расширения Xdebug helper

Далее заходим в магазин расширений Google Chrome, находим расширение XDebug helper и устанавливаем его.

отладка php кода в phpstorm. 2021071142d63ed05f0f9dfbb8fe799de88ccfa9d81914274822b3777c3a1e3249050844. отладка php кода в phpstorm фото. отладка php кода в phpstorm-2021071142d63ed05f0f9dfbb8fe799de88ccfa9d81914274822b3777c3a1e3249050844. картинка отладка php кода в phpstorm. картинка 2021071142d63ed05f0f9dfbb8fe799de88ccfa9d81914274822b3777c3a1e3249050844. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

В правом верхнем углу Google Chrome находим иконку с паззлом, жмем на нее, и напротив XDebug helper жмём на три точки. Выбираем пункт «Параметры».

отладка php кода в phpstorm. 202107119582febd717cdea28fdec07ba99a3e39e18ea18dfd903342f7da8ff61f591221. отладка php кода в phpstorm фото. отладка php кода в phpstorm-202107119582febd717cdea28fdec07ba99a3e39e18ea18dfd903342f7da8ff61f591221. картинка отладка php кода в phpstorm. картинка 202107119582febd717cdea28fdec07ba99a3e39e18ea18dfd903342f7da8ff61f591221. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

В секции IDE key выбираем PhpStorm и обязательно! жмём кнопку Save.

Жмём на паззл ещё раз, и напротив пункта Xdebug helper жмём кнопку для закрепления плагина на панели.

отладка php кода в phpstorm. 202107115e8b0742c7098e93286a95366b3b96ccf27fa10db8b9c6b7421798377253ddae. отладка php кода в phpstorm фото. отладка php кода в phpstorm-202107115e8b0742c7098e93286a95366b3b96ccf27fa10db8b9c6b7421798377253ddae. картинка отладка php кода в phpstorm. картинка 202107115e8b0742c7098e93286a95366b3b96ccf27fa10db8b9c6b7421798377253ddae. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

Начинаем отлаживать

Итак, все настройки выполнены и дело осталось за малым – начать пользоваться отладчиком.

Вернёмся снова в IDE, в нашем index.php запишем следующий код:

отладка php кода в phpstorm. 2021071170247ee8afe8fabeca2394867d9e51bc338b262df849567cdf2538239715d43c. отладка php кода в phpstorm фото. отладка php кода в phpstorm-2021071170247ee8afe8fabeca2394867d9e51bc338b262df849567cdf2538239715d43c. картинка отладка php кода в phpstorm. картинка 2021071170247ee8afe8fabeca2394867d9e51bc338b262df849567cdf2538239715d43c. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

Это брэйкпоинт (breakpoint), или, как её ещё называют – точка останова. К ней мы вернёмся чуть позже.

В правом верхнем углу PhpStorm напротив выбранной конфигурации XDebug нажимаем на значок зеленого жучка. На нём загорится точка. Внизу IDE появится консоль.

отладка php кода в phpstorm. 202107112875845e8c3843c0520d5bb35a5cdf2e3c375de2f6f0f699019376323a554c18. отладка php кода в phpstorm фото. отладка php кода в phpstorm-202107112875845e8c3843c0520d5bb35a5cdf2e3c375de2f6f0f699019376323a554c18. картинка отладка php кода в phpstorm. картинка 202107112875845e8c3843c0520d5bb35a5cdf2e3c375de2f6f0f699019376323a554c18. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

Нажмем правой кнопкой мыши на вкладке Console и уберем галочку «Focus on startup».

отладка php кода в phpstorm. 202107113117bed68b162c5536a7f758755a32e013536619b14444799a7e418b887540cb. отладка php кода в phpstorm фото. отладка php кода в phpstorm-202107113117bed68b162c5536a7f758755a32e013536619b14444799a7e418b887540cb. картинка отладка php кода в phpstorm. картинка 202107113117bed68b162c5536a7f758755a32e013536619b14444799a7e418b887540cb. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

И переходим во вкладку Debugger.

отладка php кода в phpstorm. 20210711447d255af6af2aabea32f13ec2f89ac6bd661b9ee73a9de36f8bff6b44c8b33f. отладка php кода в phpstorm фото. отладка php кода в phpstorm-20210711447d255af6af2aabea32f13ec2f89ac6bd661b9ee73a9de36f8bff6b44c8b33f. картинка отладка php кода в phpstorm. картинка 20210711447d255af6af2aabea32f13ec2f89ac6bd661b9ee73a9de36f8bff6b44c8b33f. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

Теперь возвращаемся во вкладку браузера с нашим открытым проектом, жмём на иконку плагина Xdebug helper (жучок), выбираем пункт Debug.

отладка php кода в phpstorm. 2021071189955ef0900e1614b3091086044c3025c0cd878ff2723f86158035ef69db35d3. отладка php кода в phpstorm фото. отладка php кода в phpstorm-2021071189955ef0900e1614b3091086044c3025c0cd878ff2723f86158035ef69db35d3. картинка отладка php кода в phpstorm. картинка 2021071189955ef0900e1614b3091086044c3025c0cd878ff2723f86158035ef69db35d3. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

После чего значок станет зелёным.

Теперь можно в Chrome обновить страницу, и увидеть, что она повисла в режиме загрузки.
отладка php кода в phpstorm. a1e427851c88c2f9dccb1a7be77a3812e632e7229b8b3bc97904357ee7794c3e. отладка php кода в phpstorm фото. отладка php кода в phpstorm-a1e427851c88c2f9dccb1a7be77a3812e632e7229b8b3bc97904357ee7794c3e. картинка отладка php кода в phpstorm. картинка a1e427851c88c2f9dccb1a7be77a3812e632e7229b8b3bc97904357ee7794c3e. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

А в окне PHPStorm увидеть следующее:
отладка php кода в phpstorm. c26032e669ffc5882539ede105b43973dccf84fedfc2921dfdb2a31d1bd9f0b3. отладка php кода в phpstorm фото. отладка php кода в phpstorm-c26032e669ffc5882539ede105b43973dccf84fedfc2921dfdb2a31d1bd9f0b3. картинка отладка php кода в phpstorm. картинка c26032e669ffc5882539ede105b43973dccf84fedfc2921dfdb2a31d1bd9f0b3. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

Наша программа остановила своё выполнение в месте брэйкпоинта.

Давайте нажмём кнопку “F8”. Она осуществляет выполнение кода на текущей строке и останавливается перед следующим действием.
отладка php кода в phpstorm. 4ea61c03df6339c3e490cf719670fd5613892adc0cd2b695a698a36b133ca97c. отладка php кода в phpstorm фото. отладка php кода в phpstorm-4ea61c03df6339c3e490cf719670fd5613892adc0cd2b695a698a36b133ca97c. картинка отладка php кода в phpstorm. картинка 4ea61c03df6339c3e490cf719670fd5613892adc0cd2b695a698a36b133ca97c. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

Помимо этого, есть, разумеется, и другие сочетания клавиш, которые используются во время отладки.

Давайте прямо сейчас нажмём F9. Это приведет к тому, что программа продолжит выполнение до следующего брэйкпоинта (да, их можно наставить сколько угодно). Если их больше не встретится (как в нашем примере), то программа просто завершит свою работу.

Давайте поиграемся с кодом посложнее:

И установим два брэйкпоинта на строках 5 и 10.
отладка php кода в phpstorm. a3c29b688bd280e4545b3de4dde60597985fcd92030d08bf5f992fa74312ed4a. отладка php кода в phpstorm фото. отладка php кода в phpstorm-a3c29b688bd280e4545b3de4dde60597985fcd92030d08bf5f992fa74312ed4a. картинка отладка php кода в phpstorm. картинка a3c29b688bd280e4545b3de4dde60597985fcd92030d08bf5f992fa74312ed4a. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

После чего обновим нашу страничку в браузере и попадём в первый брэйкпоинт на строке 10:
отладка php кода в phpstorm. 533b87ba2b63d7b0b90c1c93038e381c662dd3777c4b220713130ce19768aed3. отладка php кода в phpstorm фото. отладка php кода в phpstorm-533b87ba2b63d7b0b90c1c93038e381c662dd3777c4b220713130ce19768aed3. картинка отладка php кода в phpstorm. картинка 533b87ba2b63d7b0b90c1c93038e381c662dd3777c4b220713130ce19768aed3. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

Помимо этого, в левом нижнем углу есть окошечко “Frames”, это так назваемый “стек вызовов”. Здесь мы можем переключаться на места, откуда был вызван наш код ранее. Так мы можем переключиться в то место, где была вызвана функция getSum().
отладка php кода в phpstorm. 415e9ab2f45491749d1109d040024ea89198ec5afa8fcce2d150a365772bfad8. отладка php кода в phpstorm фото. отладка php кода в phpstorm-415e9ab2f45491749d1109d040024ea89198ec5afa8fcce2d150a365772bfad8. картинка отладка php кода в phpstorm. картинка 415e9ab2f45491749d1109d040024ea89198ec5afa8fcce2d150a365772bfad8. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

И можем посмотреть переменные, которые были доступны в той области видимости (уровнем выше).

Отлично, осталось рассмотреть ещё одну клавишу и вы готовы к бою – F7. Она позволяет зайти “внутрь” какой-либо конструкции.

Давайте закончим отладку нажатием F9. Поставим теперь только один брэйкпоинт на строке номер 15 и обновим страничку в браузере.
отладка php кода в phpstorm. 3a70dc3f2b90f46e8573c5470968ae8f7e003cc2ed36bcd228baab52c9340d87. отладка php кода в phpstorm фото. отладка php кода в phpstorm-3a70dc3f2b90f46e8573c5470968ae8f7e003cc2ed36bcd228baab52c9340d87. картинка отладка php кода в phpstorm. картинка 3a70dc3f2b90f46e8573c5470968ae8f7e003cc2ed36bcd228baab52c9340d87. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

Если сейчас нажать F8, то программа закончит своё выполнение, и мы не попадём внутрь функций. Так происходит потому что во время отладки мы работаем на определённых уровнях вложенности, и если нам нужно будет попасть внутрь функции, то нужно будет нажать F7, находясь на строке 15. После этого мы окажемся на строке 10. Если сейчас нажать F8, попадём на строку 11. Ещё раз – на строку 12. Если мы сейчас, находясь на 12 строке нажмем F7, то попадём внутрь функции getSum() на строку 5. А если бы мы нажали F8, то мы просто поднялись бы на уровень выше, в то место, где была вызвана функция getSumOfCos().

В принципе, большего для отладки вам не потребуется (лично мне этого хватает).

Ну а сейчас пришла пора поотлаживать рекурсивные функции. Коль уж у вас возникли проблемы с прошлой домашкой – давайте их решать =)

Давайте возьмем и поковыряем код из предыдущей домашки:

Поставим брэйкпоинт на 3 строке и запустим программу.
отладка php кода в phpstorm. 4a473d9379d9501c11afcfcb70d87e40f13afd8358b77ca11e9407b4e4408841. отладка php кода в phpstorm фото. отладка php кода в phpstorm-4a473d9379d9501c11afcfcb70d87e40f13afd8358b77ca11e9407b4e4408841. картинка отладка php кода в phpstorm. картинка 4a473d9379d9501c11afcfcb70d87e40f13afd8358b77ca11e9407b4e4408841. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

Жмём F8 и попадаем на строку 5. Сейчас функция завершит свою работу и мы попадём на уровень выше, в то место, где она была вызвана. Итак, жмём F8.

Источник

Отладка с помощью XDebug и PhpStorm на примере сайта 1С-Битрикс

В этой статье я расскажу как удобно осуществлять отладку кода в PhpStorm на примере работы с веб-сайтом, работающем в системе 1C-Битрикс. Работать будем с IDE PhpStorm и отладчиком XDebug. Я предполагаю, что на вашем сервере уже установлен XDebug и у вас уже создан проект в PhpStorm.

Во время разработки часто приходится использовать функции типа print_r() или echo для вывода данных на экран. Я сам лично до недавнего времени использовал функции типа:

Эта функция печатала массив на экран и уже в таком виде я его разбирал и вносил в код правки. Но что же делать, если принт огромного $arResult на странице недопустим? Что если на сайте уже есть посетители и выводить системную информацию категорически нельзя (для удаленного дебага будет полезна статья)? Тогда появляются еще более интересные функции типа:

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

XDebug и PhpStorm

Эти два продукта дают нам возможность отказаться от вышеописанных функций да и вообще вывода переменных на экран при отладке приложения и получать данные прямо в IDE в удобном и читаемом виде:

отладка php кода в phpstorm. 5659ebd5d782d294970c335f54e74874. отладка php кода в phpstorm фото. отладка php кода в phpstorm-5659ebd5d782d294970c335f54e74874. картинка отладка php кода в phpstorm. картинка 5659ebd5d782d294970c335f54e74874. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

Выше на скриншоте мы можем наблюдать объект $APPLICATION в окне дебага файла /index.php. Мы получили полную информацию об объекте, в сгруппированном виде, при этом мы можем наблюдать тип данных каждого элемента в объекте. И (внимание!) мы при этом нигде не писали ни каких var_dump() или print_r()!

Настройка PhpStorm для отладки с помощью XDebug

Перед тем как начать пользоваться такой прелестью нам нужно совершить несколько действий:

1. Настроить XDebug на сервере

Первым делом мы должны убедиться, что на серевере установлен XDebug. В данной статье я не буду рассматривать процесс установки XDebug на сервере, об этом есть много статей в интернете. Лишь покажу что нужно было сделать в MAMP, чтоб активировать XDebug:

Все действия совершались с файлом php.ini для сборки PHP версии 5.5.3. Как добраться к этому файлу в MAMP — ниже на скриншоте

отладка php кода в phpstorm. 6bbfb04858ecf9579997c75eeede2508. отладка php кода в phpstorm фото. отладка php кода в phpstorm-6bbfb04858ecf9579997c75eeede2508. картинка отладка php кода в phpstorm. картинка 6bbfb04858ecf9579997c75eeede2508. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

В этом файле нужно раскоммертировать строку
zend_extension=»/Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so»

и дописать строку
xdebug.remote_enable=1

отладка php кода в phpstorm. c9ce07e49ed4aa7752966d8a6b64f30b. отладка php кода в phpstorm фото. отладка php кода в phpstorm-c9ce07e49ed4aa7752966d8a6b64f30b. картинка отладка php кода в phpstorm. картинка c9ce07e49ed4aa7752966d8a6b64f30b. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

После этого phpinfo() выдаст нам такую информацию:

отладка php кода в phpstorm. 66da62cc90a0c309e846363625b6e2fe. отладка php кода в phpstorm фото. отладка php кода в phpstorm-66da62cc90a0c309e846363625b6e2fe. картинка отладка php кода в phpstorm. картинка 66da62cc90a0c309e846363625b6e2fe. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

XDebug готов к работе.

2. Настроить PhpStorm

отладка php кода в phpstorm. e2f7fdf7cf312057cde84c2fa6e540c0. отладка php кода в phpstorm фото. отладка php кода в phpstorm-e2f7fdf7cf312057cde84c2fa6e540c0. картинка отладка php кода в phpstorm. картинка e2f7fdf7cf312057cde84c2fa6e540c0. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

отладка php кода в phpstorm. 889cbee0a2136d3a941f2245316dd344. отладка php кода в phpstorm фото. отладка php кода в phpstorm-889cbee0a2136d3a941f2245316dd344. картинка отладка php кода в phpstorm. картинка 889cbee0a2136d3a941f2245316dd344. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

Нажимаем на плюс, чтоб добавить новую настройку для дебага.

отладка php кода в phpstorm. d80ef0f1afbeffc82db81bd380fe2dec. отладка php кода в phpstorm фото. отладка php кода в phpstorm-d80ef0f1afbeffc82db81bd380fe2dec. картинка отладка php кода в phpstorm. картинка d80ef0f1afbeffc82db81bd380fe2dec. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

Выбираем настройку Php Web Application

отладка php кода в phpstorm. 2ff1f1e446bd9869afa23f87cf37e1a8. отладка php кода в phpstorm фото. отладка php кода в phpstorm-2ff1f1e446bd9869afa23f87cf37e1a8. картинка отладка php кода в phpstorm. картинка 2ff1f1e446bd9869afa23f87cf37e1a8. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

Тут нужно настроить инструмент с помощью которого осуществляется дебаг, нажимаем на кнопку рядом с настройкой сервера:

отладка php кода в phpstorm. 4980325ae9a76db5c154852994d66239. отладка php кода в phpstorm фото. отладка php кода в phpstorm-4980325ae9a76db5c154852994d66239. картинка отладка php кода в phpstorm. картинка 4980325ae9a76db5c154852994d66239. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

Нажимаем на плюс, заполняем имя, хост сайта и нажимаем на Validate remote environment.

отладка php кода в phpstorm. 079536ddf9530099948360477beed9f6. отладка php кода в phpstorm фото. отладка php кода в phpstorm-079536ddf9530099948360477beed9f6. картинка отладка php кода в phpstorm. картинка 079536ddf9530099948360477beed9f6. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

Там выбираем из списка тот сервер, который настраивали выше и нажимаем Validate

отладка php кода в phpstorm. 5290ef600bf26194b513c3abcacc9b4f. отладка php кода в phpstorm фото. отладка php кода в phpstorm-5290ef600bf26194b513c3abcacc9b4f. картинка отладка php кода в phpstorm. картинка 5290ef600bf26194b513c3abcacc9b4f. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

Если валидация прошла успешно, то мы готовы к дебагу. Применяем все сохраненные настройки и возвращаемся в редактор.

3. Расстановка брейкпоинтов (breakpoints)

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

отладка php кода в phpstorm. 01ee7301e86b6fc33dece457b20574d7. отладка php кода в phpstorm фото. отладка php кода в phpstorm-01ee7301e86b6fc33dece457b20574d7. картинка отладка php кода в phpstorm. картинка 01ee7301e86b6fc33dece457b20574d7. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

4. Запуск дебага

Далее нужно включить прослушивание 9000 порта, на который XDebug будет посылать ответ при запуске скрипта, и нажать на зеленого жука слева (расположений кнопок в windows версии PhpStorm может отличаться).

отладка php кода в phpstorm. f211081f5263bc49d22875bf7b744529. отладка php кода в phpstorm фото. отладка php кода в phpstorm-f211081f5263bc49d22875bf7b744529. картинка отладка php кода в phpstorm. картинка f211081f5263bc49d22875bf7b744529. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

После нажатия на жука у нас должен открыться браузер

отладка php кода в phpstorm. 1655f0bfb152026e976cb3df7ff82560. отладка php кода в phpstorm фото. отладка php кода в phpstorm-1655f0bfb152026e976cb3df7ff82560. картинка отладка php кода в phpstorm. картинка 1655f0bfb152026e976cb3df7ff82560. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

и через несколько секунд снова откроется PhpStorm с дебаг-панелью, где будут значения всех переменных на момент обработки кода месте брейкпоинта

Источник

Отладка с помощью XDebug и PhpStorm (дополнение)

Доброго времени суток, %username%!

Прочитал сегодня статью «Отладка с помощью XDebug и PhpStorm на примере сайта 1С-Битрикс». В ней автор использует «зеленого жука» для запуска отладки. В комментариях предложены еще несколько методов запуска отладки, такие как специальные закладки, различные плагины и т.д. На мой взгляд, все это неудобно, к тому же есть наиболее простой и удобный вариант. Я мог бы предложить его в комментариях к статье, но, увы, в read-only это невозможно. Посему вынужден писать отдельную статью.

У xdebug есть возможность автостарта, без всяких премудростей. Достаточно просто расставить breakpoint’ы и открыть Ваше приложение в браузере, xdebug будет подхватывать старт сам.

1. Настройка XDebug

В php.ini подключаем расширение и устанавливаем параметры:

2. Настройка PhpStorm

Настраиваем интерпретатор, если у вас это еще не сделано.

отладка php кода в phpstorm. image loader. отладка php кода в phpstorm фото. отладка php кода в phpstorm-image loader. картинка отладка php кода в phpstorm. картинка image loader. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

отладка php кода в phpstorm. image loader. отладка php кода в phpstorm фото. отладка php кода в phpstorm-image loader. картинка отладка php кода в phpstorm. картинка image loader. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

Далее добавляете сервер, если вы сервер локальный, то пишете в поле Host — localhost, если удаленный то адрес удаленного хоста. Имя хоста здесь и в php.ini должно совпадать.

отладка php кода в phpstorm. image loader. отладка php кода в phpstorm фото. отладка php кода в phpstorm-image loader. картинка отладка php кода в phpstorm. картинка image loader. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

Настраиваем XDebug. Порт берем из php.ini (xdebug.remote_port). Если вам не нужно чтобы XDebug останавливался на первой строчке приложения, отключаем два нижних чекбокса.

отладка php кода в phpstorm. image loader. отладка php кода в phpstorm фото. отладка php кода в phpstorm-image loader. картинка отладка php кода в phpstorm. картинка image loader. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

отладка php кода в phpstorm. image loader. отладка php кода в phpstorm фото. отладка php кода в phpstorm-image loader. картинка отладка php кода в phpstorm. картинка image loader. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

На этом настройка завершена, можно пользоваться.

Использование

Для начала работы расставляете breakpoint’ы, включаете прослушку порта XDebug и открываете ваше приложение.

отладка php кода в phpstorm. image loader. отладка php кода в phpstorm фото. отладка php кода в phpstorm-image loader. картинка отладка php кода в phpstorm. картинка image loader. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

отладка php кода в phpstorm. image loader. отладка php кода в phpstorm фото. отладка php кода в phpstorm-image loader. картинка отладка php кода в phpstorm. картинка image loader. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

Breakpoint’ы будут ловиться автоматически, без необходимости тыкать в «зеленого жука». Надеюсь информация кому-нибудь пригодится.

Источник

Debug a PHP CLI script

PHP applications are not always web applications. Various command line tools, daemons, message queue processing applications and other types of applications typically run in the PHP CLI. There are several ways to start a PHP CLI debugging session. You can start it from within PhpStorm and make it start the script and attach the debugger to it. Alternatively, you can let PhpStorm listen for incoming debugger connections and start the script outside the IDE. We’ll take a look at both options.

Before you start debugging, make sure that you have a debugging engine installed and configured properly. PhpStorm supports debugging with two most popular tools: Xdebug and Zend Debugger. These tools cannot be used simultaneously because they block each other. To avoid this problem, you need to update the corresponding sections in the php.ini file as described in Configure Xdebug and Configure Zend Debugger.

Open the active php.ini file in the editor:

Start a debugging session from PhpStorm

To start debugging a PHP CLI script from within PhpStorm, perform the following steps.

Create a Run/Debug Configuration

PhpStorm uses Run/Debug configurations to execute a script from within the IDE. A configuration can define additional arguments for the PHP interpreter as well as launch other commands prior to starting our script. We will need a Run/Debug configuration to start the debugger from within PhpStorm.

Create a Run/Debug configuration for a PHP script manually

Create a new Run/Debug configuration using the Run | Edit Configurations menu.

Add a new configuration of the PHP Script type and provide the required parameters, such as the script to be executed.

Save the created Run/Debug configuration.

Generate a Run/Debug configuration for a PHP script

Right-click in the Project tool window, and select Debug |

Источник

Отладка php кода в phpstorm

отладка php кода в phpstorm. phpstorm. отладка php кода в phpstorm фото. отладка php кода в phpstorm-phpstorm. картинка отладка php кода в phpstorm. картинка phpstorm. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

На данный момент, PhpStorm – одна из лучших IDE для разработки на языке PHP, которая предоставляет множество возможностей для разработчика, такие как запуск PHP-скриптов, благодаря возможности подключения внешнего интерпретатора PHP и отладку через расширение Xdebug.

В этой статье мы рассмотрим возможность подключения интерпретатора PHP, отладчика Xdebug к PhpStorm и использование встроенного в IDE web-сервера.

Начнем с установки отладчика Xdebug в PHP.

Установка Xdebug

Первым делом скачаем и установим сам интерпретатор PHP по ссылке: http://php.net/downloads.php

Далее нужно произвести начальную настройку PHP и прописать в переменную окружения PATH путь к интерпретатору. Чтобы не повторяться, весь необходимый порядок действий мной описан в этой статье: Установка Composer и снятие ограничения количества обращений к GitHub

Теперь можно перейти к установке отладчика Xdebug, для которого существует специальный помощник, значительно упрощающий процедуру установки. Для его использования перейдем по ссылке: https://xdebug.org/wizard.php

На этой странице, необходимо ввести в поле ввода информацию об установленном PHP-интерпретаторе, которая генерируется с помощью PHP-функции phpinfo(). Вводить нужно весь скопированный текст со страницы.

Копируем полученную информацию, нажимаем кнопку Analyse my phpinfo() output и получаем инструкцию по установке Xdebug.

В зависимости от вашей версии PHP и пути установки инструкция может отличаться от моей:

Подключение интерпретатора PHP к PhpStorm

Теперь перейдем в PhpStorm и откроем настройки комбинацией клавиш Ctrl+Alt+S.

Далее, в секции Languages & Frameworks выберем пункт PHP. В этой секции необходимо назначить интерпретатор для IDE в пункте Interpreter нажав на кнопку

отладка php кода в phpstorm. phpstorm xdebug 1. отладка php кода в phpstorm фото. отладка php кода в phpstorm-phpstorm xdebug 1. картинка отладка php кода в phpstorm. картинка phpstorm xdebug 1. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

В открывшемся окне, в поле Name вводим любое имя для удобства дальнейшей идентификации, например: PHP 5.6.11.

В поле PHP executable указываем путь до интерпретатора, например: C:\php\php.exe. Обратите внимание на появившуюся версию PHP и дебагера, что свидетельствует о правильности установки.

отладка php кода в phpstorm. phpstorm xdebug 2. отладка php кода в phpstorm фото. отладка php кода в phpstorm-phpstorm xdebug 2. картинка отладка php кода в phpstorm. картинка phpstorm xdebug 2. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

Чтобы убедиться в том, что правильно отрабатывает подключенный интерпретатор PHP, создадим в PhpStorm новый проект, добавим к нему файл index.php и запишем в этот файл, например, функцию var_dump([ 1, 2, 3 ]) с переданным в неё массивом.

На странице мы видим характерный вывод var_dump(), который генерируется с помощью Xdebug. И, если посмотреть на заголовки ответа через консоль разработчика, то мы увидим, что всё работает верно:

отладка php кода в phpstorm. phpstorm xdebug 3. отладка php кода в phpstorm фото. отладка php кода в phpstorm-phpstorm xdebug 3. картинка отладка php кода в phpstorm. картинка phpstorm xdebug 3. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

Начальная настройка Xdebug и установка его под линукс описана в статье Установка модуля Xdebug для PHP под Ubuntu Linux

Работа с отладчиком Xdebug в PhpStorm

Прежде чем приступит к отладке PHP-скриптов с помощью Xdebug произведем необходимую настройку в файле php.ini. В секции Dynamic Extensions после подключения расширения Xdebug добавим следующие настройки:

отладка php кода в phpstorm. phpstorm xdebug 4. отладка php кода в phpstorm фото. отладка php кода в phpstorm-phpstorm xdebug 4. картинка отладка php кода в phpstorm. картинка phpstorm xdebug 4. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

Чтобы проверить, что все действия были проведены верно, добавим в уже имеющийся в проекте файл index.php следующий код:

И поставим точку остановки на переменной $arr.

Теперь запустим отладку этого скрипта, нажав правую кнопку мыши и выбрав пункт Debug ‘index.php’. Если все было сделано правильно, то в PhpStorm появится вывод дебага, как показано на скриншоте.

отладка php кода в phpstorm. phpstorm xdebug 5. отладка php кода в phpstorm фото. отладка php кода в phpstorm-phpstorm xdebug 5. картинка отладка php кода в phpstorm. картинка phpstorm xdebug 5. В этом уроке мы проведем полную настройку дебаггера для PHP8 в связке с PhpStorm. Для PHP7 используйте инструкцию по настройке XDebug для PHP7.

В итоге, мы получили мощный и удобный инструмент для отладки PHP-скриптов с подключенным интерпретатором PHP, а также возможность запускать скрипты через встроенный в PhpStorm локальный web-сервер.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *