Как настроить xdebug atom

xdebug — настройка плагина php-debug в Atom

Я пытаюсь интегрировать функцию отладки ( xDebug ) в редакторе Atom. Теперь я застрял в PHP-debug конфигурации. Я хочу установить local а также remote путь для настройки PHP-debug расширение, но я не знаю, что это значит local а также remote дорожка.

я использую XAMPP сервер на моей машине MAC может кто-нибудь, пожалуйста, помогите мне настроить его?

Обновления

Из учебников я узнал, что ниже приведено определение local а также remote дорожка

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

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

Решение

Я пытаюсь интегрировать функцию отладки ( xDebug ) в редакторе Atom. Теперь я застрял в PHP-debug конфигурации. Я хочу установить local а также remote путь для настройки PHP-debug расширение, но я не знаю, что это значит local а также remote дорожка.

Читайте также:  Как настроит скорость модема

я использую XAMPP сервер на моей машине MAC может кто-нибудь, пожалуйста, помогите мне настроить его?

Обновления

Из учебников я узнал, что ниже приведено определение local а также remote дорожка

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

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

Источник

Установка и настройка Xdebug


Есть очень хороший инструмент для отладки php кода — Xdebug. Сегодня я расскажу как его развернуть на своей машине, а также как настроить NetBeans IDE на работу с ним.

Немного о Xdebug

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

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

Установка Xdebug

Уже довольно давно Xdebug, как расширение для php, присутствует в репозиториях. Поэтому его установка очень проста, для этого введите в консоли следующую команду.

С установкой покончили. Перейдем к настройке.

Настройка Xdebug

Настройка расширения выполняется при помощи редактирования конфигурационных ini файлов. Тут есть два пути:
1. В php.ini создаем секцию [xdebug] и в ней задаем параметры.
2. Все параметры задаем в xdebug.ini, который хранится тут /etc/php5/conf.d/xdebug.ini
Тут решать Вам и только Вам.

Куда писать — определились. Определимся что писать?
Давайте я приведу список настроек, и поясню, что они означают:

После, необходимо чтобы наши изменения подтянулись.
Для этого нужно перезагрузить apache или php-fpm (в зависимости от того, что Вы используете).

Чтобы убедиться, что все хорошо, выведите
phpinfo();
Если такой текст имеется — значит все отлично:

This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
with Xdebug v2.1.0, Copyright (c) 2002-2010, by Derick Rethans

Теперь проверим улучшенный var_dump:

Вы должны увидеть красивый стилизированный вывод содержимого массива.
Теперь создадим ошибку (забудем ; в конце строки)

Вы должны увидеть подробное сообщение об ошибке, представляющее собой таблицу.

Настройка PhpStorm

Настройка NetBeans IDE

Устанавливаем NetBeans, если он еще не установлен. Заходим в СервисПараметры. Переходим в меню PHP, далее вкладка Отладка (Debugging).
И указываем следующие значения.
Порт отладчика: 9000
Идентификатор сеанса: netbeans-xdebug
Хочу отметить, что порт сеанса, как и идентификатор сеанса могу быть другими. Например, можно указать идентификатор ide-xdebug , но тогда и в конфигах Xdebug придется указать такое же значение.

Остальные параметры настраиваем под себя.

Ну, а о том, как выполнять отладку — в другой раз.

Источник

Atom PHP Debugging Package

Debug PHP code using the Xdebug PHP Extension.

Features

  • Interactive Console
  • Breakpoints
  • Watches
  • Multiple Debug Sessions
  • Path Mappings
  • Step through debugging (Over, In, Out)
  • Stack and Context views
  • UTF8 Support
  • Uses atom-debug-ui

This is currently an alpha release, and still in active development.

Getting Started

Install Xdebug

You may already have Xdebug installed. Check the results of the phpinfo function for xdebug information. If no xdebug section exists, you likely need to install this. *nix users can likely find it within their package manager of choice. Alternative installation or compiling instructions are available here.

Setting up Xdebug

With these settings, PHP will connect to your editor for every script it executes. The alternative is to switch xdebug.remote_autostart to false, and install an Xdebug helper extension for your browser of choice, such as:

These browser extensions will give you a button within your browser to enable/disable Xdebug. The extensions might have configuration options for an «IDE key» (which is used for an XDEBUG_SESSION cookie). The IDE key for Atom with PHP Debug is «xdebug-atom».

It is also possible to run a php script from the command line with Xdebug enabled. You can find more information on this at the Xdebug documentation for Starting The Debugger. See can find a complete list and explanation of Xdebug settings here.

Start Debugging

To begin debugging:

  1. Open up your PHP file in atom
  2. Add a breakpoint:

Move the cursor to a line you want to break on and set a breakpoint by pressing Alt+F9 , selecting Toggle Breakpoint from the Command Palette ( ctrl+shift+p )or with the php-debug menu ( Packages -> php-debug->Toggle Breakpoint ). This will highlight the line number green, to indicate the presence of a breakpoint.

  1. Open the debug view by pressing ctrl+alt+d , selecting ‘Toggle Debugging’ from the Command Palette or php-debug menu.
  2. Start the script with Xdebug enabled. If everything is setup correctly, the entire line of the breakpoint will be highlighted in green, indicating the current line of the script.

If everything worked correctly, you can now use the various buttons/commands to step through the script.

Settings

Server Port

This is the port that the atom client will listen on. Defaults to 9000

Server Address

This is the address that the atom client will listen on. Defaults to 127.0.0.1

Xdebug DBGP Protocol Debugging

Outputs protocol debugging messages to the atom debug console

Xdebug: Max Depth

Max depth for variable scopes

Xdebug: Max children

Maximum number of array elements to show in variables

Xdebug: Max Data

Maximum data for variables

Display: Sort Arrays/Object alphabetically

Sort Arrays/Object alphabetically instead of by php default

Display: Status Bar

Allow PHP Debug to be opened from the status bar

Exceptions

Default exceptions and errors for PHP-Debug to break on

Path Maps

Pathmaps are now configured for each project folder during connection

I think this package is bad news.

Good catch. Let us know what about this package looks wrong to you, and we’ll investigate right away.

Источник

How to enable php-debug in Atom?

I have installed php-debug in Atom + its IDE dependencies. When I set a breakpoint the debug view opens saying The debugger is not attached, but when I am trying to do so it seems as if Atom doesn’t recognize I have php-debug package installed and asks me to install a debugger.

I read on some places there is a toggle debugging setting on the package, but I can’t see that option.

I’m using Atom 1.27.0 and PHP 7.2.4:

I could provide Xdebug configuration but seems like the problem is on Atom itself? Did anyone have this problem?

4 Answers 4

  1. Download xdebug from https://xdebug.org/download.php, TS version for Apache
  2. Copy it to php/ext directory
  3. Copy below text in php.ini below all other extensions

zend_extension=»D:/wamp/php/ext/php_xdebug-2.6.1-7.2-vc15-x86_64.dll»
[xdebug]
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_connect_back=1 # Not safe for production servers
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_mode=req xdebug.remote_autostart=true

Restart Apache and Find «xdebug» string in

  • Install atom-debug_ui, php_debug
  • Package > PHP Debug > Toggle
  • Apply break-points and Run a PHP file from browser and that’s it.

If it ask for paths remote http://localhost/DIRECTORY_PATH_TO_PHP_FILE and local is directory path to PHP file.

I had the very same message few days ago …
Breakpoint were acually hit, I could see this because of the browser’s tab loading icon, but nothing was happening on Atom user interface. All I could do was clicking stop or detach buttons which caused xdebug to end session and terminate browser tab load.
Using PHP7.2.7, Xdebug 2.6 (Docker php-fpm-alpine); Atom 1.26.1 x64

TLDR; PHP-debug extension couldn’t process the «Path mappings» value I entered in the configuration panel.

Opening the dev console in Atom allowed me to spot an error accuring as the debugging session gets initiated in PHP Debug extension.

This led me to read at the Github repository and quickly figure what was going on.

All I had to do was changing the «Path mappings» text field value I erroneous filled in the first place. The text field expects a JSON string, as we can see HERE, the path mappings should be an iterable/array made of objects. It has to loook like this:

Add more mapping objects if you have more than one project. Note that this setting is reflected in

This fixed the issue, the debug view do not pop anymore saying there is no debugger attached.

Источник

Настройка отладки php-кода при помощи Xdebug

Классические методы отладки на PHP — использование функций error_log, print_r и var_dump. Их проблема в том, что они не помогают отслеживать сам процесс работы кода. Однако с этой задачей справляется Xdebug — один из самых популярных инструментов среди PHP-разработчиков, которые хотят работать, а не страдать.

В этой статье будет рассмотрена отладка PHP с помощью связки Xdebug и VSCode. Если вы пользуетесь PHPStorm, то проблем тоже не будет — настройка выполняется даже проще и быстрее.

Возможности Xdebug

Xdebug — это расширение для PHP, которое позволяет использовать удаленный отладчик в IDE через брейк-пойнты. С его помощью вы можете отслеживать значения переменных. Как итог — ошибки в коде обнаруживаются быстрее, чем при использовании error_log, print_r и var_dump.

Еще одна полезная функция — трассировка стека. Она выводит подробный путь, который привел приложение к ошибке. Он содержит параметры, переданные в функцию. Xdebug также можно использовать как профайлер для поиска узких мест кода. Если добавить внешние инструменты, то получится визуализировать графики производительности. Например, можно использовать WebGrind — набор PHP-скриптов для удобного вывода статистики прямо в браузере.

Кроме того, с помощью Xdebug вы можете проследить, какая часть кода выполняется в процессе запроса. Это дает информацию о том, как хорошо код покрыт тестами.

Подключение Xdebug

Для работы Xdebug PHP должен быть в режиме CGI. Посмотрим на примере хостинга Timeweb, как его включить.

Подключаемся к серверу через SSH. Можно использовать консоль в панели управления Timeweb.

Переходим в папку cd-bin сайта:

Создаем символическую ссылку командой:

Остаемся в директории cgi-bin и копируем файл php.ini:

Добавляем в файл .htaccess сайта две строки:

Теперь мы можем управлять параметрами PHP директивами в файле php.ini. Он находится в папке cgi-bin. Открываем его и вставляем в конце следующие строки:

Если указанный порт занят, укажите другой. Можно использовать стандартный для Xdebug — 9000. В качестве idekey я указал VSCODE. Если будете настраивать конфигурацию для PHPStorm, впишите его.

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

Открываем файл в браузере и проверяем, что все параметры указаны верно.

Организация удаленного подключения

Чтобы выполнять PHP Debug на локальной машине, нужно настроить связь IDE и сервера через SSH-туннель.

На Linux все выполняется парой команд.

Приватный ключ сохраняется на локальной машине, а публичный добавляется на сервер. Подробнее об этом, а также о настройке SSH на Windows, вы можете узнать из этой статьи.

На Linux туннель создается командой:

На Windows туннель настраивается через утилиту PuTTY.

  1. На вкладке Session указываем имя сервера и номер порта 1024. Проверяем, чтобы был отмечен протокол SSH.
  2. Переходим в раздел Connection — Data. Указываем логин.
  3. Переходим в раздел Connection — SSH — Tunnels. Указываем параметры так, как указано на скриншоте. Номер порта пишем тот, который используется в конфигурации PHP на сервере.
  4. Возвращаемся в раздел Session и нажимаем на кнопку Open. Подтверждаем корректность ключей (только первый раз).

Сессия сохранится под тем именем, которое мы указали в разделе Session. В дальнейшем нужно будет просто запускать ее заново.

Настройка VSCode

Чтобы работать с Xdebug в VSCode, установим два расширения: Sync-Rsync и PHP Debug. Первое нужно для работы с удаленным сервером, второе — для отладки скриптов.

  1. Открываем в VSCode раздел Extensions (можно использовать сочетание клавиш Ctrl+Shift+X).
  2. Находим и устанавливаем расширение Sync-Rsync.
  3. Находим и устанавливаем расширение PHP Debug.

После установки расширений создаем на локальной машине пустую папку и открываем ее через VSCode: «Файл» — «Открыть папку».

Добавляем подпапку .vscode, создаем внутри нее файл settings.json и прописываем в нем настройки для Sync-Rsync.

Путь /home/user/.ssh/id_rsa — это место, где лежит файл с закрытой частью SSH-ключа.

После сохранения файла settings.json нажимаем в VSCode F1, выполняем команду Sync Remote to Local. В локальную папку, указанную в настройках, скопируются все файлы с сервера.

Затем нажимаем на иконку отладки и на шестеренку. В папке .vscode появится файл launch.json. В него тоже нужно внести изменения:

На этом настройка IDE завершена. Можно приступать к тестированию кода.

Debug кода

Мы настроили среду, теперь разберемся, как пользоваться Xdebug.

  1. Изменим содержимое файла Myfile.php, который мы создали при подключении отладчика. Добавим в него функцию, которую хотим проверит ь.
  2. Чтобы загрузить измененный файл на сервер, нажимаем на клавишу F1 и выполняем команду Sync-Rsync: Sync Local to Remote.
  3. Открываем файл в браузере и проверяем, что синхронизация работает.
  4. Расставляем в VSCode брейк-пойнты, которые нужны для отладки.

Переходим в режим «Отладка» и проверяем, что выделен пункт Listen for XDebug. Нажимаем на зеленый треугольник или на клавишу F5.

После перезагрузки сайта в браузере возвращаемся в VSCode. В отладчике должны отобразиться глобальные переменные и их значения на момент обработки кода в брейк-пойнте. Вы можете перемещаться по коду, отслеживая изменение переменных на каждом шаге.

Профилирование с визуализацией результатов

Чтобы использовать Xdebug profiler на полную мощность, установим WebGrind. Это набор скриптов, который выводит статистику в браузере. С его помощью можно посмотреть список вызванных функций, количество вызовов, общее затраченное время на вызов и выполнение.

  1. Скачиваем WebGrind с GitHub.
  2. Загружаем архив на сервер и распаковываем файлы в корне сайта.
  3. Создаем папку, в которой будут храниться логи.
  4. Добавляем в файл php.ini две директивы:

Затем нужно открыть файл config.php, который находится в распакованной папке webgrind-master. В нем отредактируем две строки:

После такой настройки можно выполнять на Xdebug профилирование. Открываем наш тестовый скрипт в браузере. Затем переходим по ссылке www.domain/webgrind-master. В выпадающем списке выбираем только что запущенный скрипт и нажимаем на кнопку Update.

Функции можно скрывать или раскрывать, чтобы посмотреть развернутую статистику. Инструмент также умеет отображать графы вызова функций — для этого используется режим Show Call Graph.

Вывод: когда использовать Xdebug?

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

Источник

Оцените статью