Pull to refresh

Отладка скриптов в Zend Studio

Reading time2 min
Views7.1K
Не так давно, я обратился к хабро-общественности за помощью в этом топике. Тогда мне не только не помогли, но еще и заминусовали карму. Посему разбираться пришлось самому…

Итак, сегодня я расскажу об локальной отладке PHP кода. Существует много способов. Начиная от пресловутых var_dump и die() и заканчивая xDebug и FirePHP. Я же поведую о, на мой взгляд, самом удобном способе отладки — отладка в среде Zend Studio. Будет рассматриваться версия 5.5.0 для Windows. Пользователи PDT в комплекте с ZendStudio могут использовать xDebug, как описано в этой статье.

Для полноценной работы нам понадобится 3 компонента:
  1. сам Zend Studio 5.5
  2. библиотека «Zend Debugger»
  3. Zend Studio Toolbar для Firefox


После установки Zend Studio, необходимо поставить библиотеку для отладки. Останавливаем веб-сервер. Выбираем в архиве версию, соотвествующую вашей версии php, и копируем ее в каталог с PHP-библиотеками. Далее открываем php.ini и добавляем туда следующие строки:

zend_extension_ts=path/ZendDebugger.dll
В этой строчке мы указываем полный путь до библиотеки.

zend_debugger.allow_hosts=127.0.0.1
zend_debugger.expose_remotely=always


Запускаем сервер и смотрим phpinfo. Там дожна появиться следующая секция:

phpinfo

Из архива с библиотекой, кидаем файл dummy.php в наш рабочий проект.

Далее нам надо настроить саму среду отладки. Идем в Tools>Preferences>Debug и вносим измения, согласно скриншоту:
image

Теперь осталось только установить zend toolbar и можно начинать отлаживать наш код.

Итак, как это происходит на примере обработчика некой формы:

1. Открываем в Firefox страницу с формой. На панели ZT выбираем «All pages on this site». Не знаю почему, но у меня работает только этот вариант.
image
2. В Zend Studio ставим необходимые брейкпойнты (точки останова) в скрипте-обработчике формы.
3. Сабмитим форму.
4. После сабмита, становится активным Zend Studio с запущенным процессом отладки. Также становятся активны кнопки на панели отладки. Вот что они значат:

«step over» — выйти из функции или вложенного файла
«step out» — перейти на предыдущую строку
«step into» — перейти на следующую строку
«go» — запустить выполнение скрипта до первого брейкпойнта
«go to cursor» — запустить выполнение скрипта до курсора
«run» — полностью выполнить скрипт

Значение остальных кнопок и панелей, я думаю, в обьяснении не требуется.
Tags:
Hubs:
+37
Comments85

Articles