В предыдущей статье мы говорили об отладке php с помощью инструментов, которые просто нам дают кое какую информацию о данных в нашем скрипте при выполнении. А что если нам надо для отладки задать точки останова, пройти скрипт построчно (по шагам), изменить значения переменных в процессе отладки? Неужели такими инструментами обладают только счастливые программисты настольных приложений? Конечно же это не так.
Продолжая серию статей об отладке давайте остановимся и посмотрим на один из таких инструментов - ZendDebugger. В Eclipse PDT входит специальный plugin, который позволяет производить отладку web-приложений в среде Eclipse при помощи ZendDebugger (Zend Web Server Debugger). Последний компонент должен устанавливаться отдельно на сервере, на котором нужно производить отладку скриптов. Давайте попробуем установить его и запустить отладку.
Качаем с данной страницы debugger и устанавливаем на сервер. Традиционно в архиве с ПО есть инструкции по установке.

  • Копируем файл ZendDebugger.so (если вы на Linux) или ZendDebugger.dll (если ваши сервер на Windows) скомпилированный для подходящей версии PHP (в загруженном архиве есть папки для 4.3.x, 4.4.x, 5.0.x, 5.1.x, 5.2.x) в подходящую директорию
  • В файле php.ini прописываем путь к данному файлу. Для Linux так:
    zend_extension=/usr/lib/php5/extensions/ZendDebugger.so

    Для Windows так:

    zend_extension_ts=/full/path/to/ZendDebugger.dll

    Вставьте свой путь пожалуйста

  • Добавляем следующие строки в этот же файл
     zend_debugger.allow_hosts=127.0.0.1
     zend_debugger.expose_remotely=always

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

  • Помещаем файл dummy.php из архива в корневую папку каждого сайта, который вы планируете отлаживать
  • Перезагружаем Apache.
    /etc/init.d/apache2 restart

Теперь откроем страницу с вызовом функции phpinfo(). Если мы все сделали верно, то у нас появится здесь информация связанная с ZendDebugger.
Секция ZendDebugger в phpinfo
Если вы загрузили последний Eclipse PDT, то вы можете войти и убедиться что как отладчик у вас используется
ZendDebugger. Для этого выберите в главном меню Window->Preferences и в появившемся диалоге в дереве выберите PHP->Debug .Там же вы найдете ссылку PHP Servers, перейдя по которой вы увидите диалог, в котором вы можете добавить новый сервер (сайт), где будет производиться отладка.
В этом диалоге задайте пожалуйста имя, адрес сервера и расположение кода сайта. Последнее очень важно, потому что и ZendDebugger и PDT с соответствующим plugin’ом должны знать какой файл отлаживается. Код может находиться на вашей машине как на примонтированном сетевом диске или как checkout через SVN.
Диалог добавления информации о сервере
Диалог добавления информации о сервере
Далее выберем в главном меню Eclipse пункт Run->Open Debug Dialog. Вы увидите экран, в котором сможете задать настройки отладочной сессии и сохранить ее под удобным вам именем.
Диалог настроек отладочной сессии
Выбирите здесь ваш сервер, путь к отлаживаемому файлу на диске и на сервере. На рисунке выбран index.php.
Далее можно смело жать кнопку Debug и вы перейдете к главному окну Eclipse с настройками интерфейса для отладки (Debug perspective). В окне с кодом на полях вы увидите маркер на месте, где находится текущая точка выполнения скрипта. Вы можете видеть значения переменных в окне Variables и менять эти значения. В окне Debug вы видите файл, который в данный момент отлаживается и тут же с помощью кнопок на панели инструментов можете управлять ходом отладки. Есть окно Breakpoints с точками останова и окно Browser Output, отображающем вывод в браузер.

Вид Debug perspective

Мы только начали знакомство с “тяжелыми” отладчиками. На этом серия статей о них не кончается. Кое-какие подробности про ZendDebugger, а так же знакомство с другими отладчиками читайте в следующих статьях.

Tags: ,

Comments are closed.