Среда разработки NetBeans: отладка PHP-кода

Среда разработки NetBeans: отладка PHP-кода

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

Для чего нужен дебаггер

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

Среда разработки NetBeans: отладка PHP-кода

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

логирование (логгинг, журналирование). Это процесс записи всех проведенных операций в хронологическом порядке. Некоторые разработчики называют этот процесс аудитом, по аналогии с финансовой отчетностью. Но это в корне неверно, так как при аудите существует конкретный эталон, с которым оператор проводит сравнение. Журналирование — это лишь процедура записи, не более;

использование программных инструментов отладки — отладчиков. Именно они и интересуют нас, как часть среды разработки NetBeans. Суть их работы состоит в том, чтобы запустить программу шаг за шагом и определить, какая из строчек кода заставляет систему считать ложь.

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

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

Сначала это смоуктесты — это что-то вроде первой пробы программы, ее первый запуск. Если на этом этапе ничего не обнаружено, переходим к блэк-бокс тестированию и далее, масштабируя к единичному. Воспроизводя ошибки, выясняем, в каких условиях они появляются. И лишь выяснение их причин является отладкой.

Таким образом, вы можете увидеть, насколько это трудоемкий процесс, и почему важно, чтобы он выполнялся отладчиками и профайлерами. В целом, «отладчики» — это очень обобщенное название. Сюда входят:

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

трансляторы. Они позволяют превратить код в «ассемблерный» вид и просмотреть его;

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

системные журналы. В них хранятся результаты легирования для последующего анализа другими отладчиками.

Чем выше уровень языка, тем легче пройдет отладка. К примеру, NetBeans поддерживает и такие простые языки, как PHP, и такие высокоразвитые как C++. Учитывая, что нам нужно качественно показать отладку, обратимся именно к препроцессорам. Таким образом пройдем через все его этапы.

Поработаем с PHP

Прежде всего, разберемся с программным обеспечением, которое потребуется для демонстрации отладки:

среда разработки NetBeans. Если фулл комплит у вас еще не установлен на ПК, необходимо инсталлировать пакет с поддержкой PHP. Это можно сделать в меню установщика, где вы кастомизируете необходимый пакет;

непосредственно механизм PHP, не старше пятой версии;

локальный веб-сервер. Он может идти вместе с AMP-набором, но рекомендуем установить и настроить именно Apache. Желательно, версии 2.2;

и, конечно же, отладчик для языка препроцессоров. Пусть это будет XDebug 2.0 или более новая версия.

Ни с чем из вышеизложенного не должно возникнуть проблем. Небольшие баги возникают с программой XDebug (да-да, баги у дебаггера). Для того чтобы решить эту проблему, необходимо обратится к документации. Если даже это не поможет, существует мейл, на который PHP-разработчики описывают свои неурядицы. Пишите и вы, чтобы получить ответ.

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

Поставим брейк-пойнт на том месте, где PHP-программа должна прекратить работу.

Запускаем дебаггер.

Как только выполнение дойдет до брейк-поинта (точки останова), начинаем выполнять сценарий построчно при помощи двух клавиш: F7 и F8. При этом состояние необходимо отслеживать в окнах отладчика, о которых поговорим немного ниже.

Панель и редактор

Пропустим настройку параметров отладки. Эту информацию вы можете найти в документации, которая находится на официальном сайте NetBeans. Как нам кажется, намного более важным аспектом станет использование панели инструментов и ее непосредственного взаимодействия с редактором кода.

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

Среда разработки NetBeans: отладка PHP-кода

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

Точки останова

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

Другое дело PHP. Без точек здесь просто не проведешь отладку при помощи XDebug. Чтобы установить точку, воспользуемся полями в коде и щелкнем в левой стороне для установки. Вы увидите, что вместо нумерации отобразится кнопка в форме квадрата — она нам и нужна. Это словно тумблер, с помощью которого будем включать и выключать точку останова. Это делается щелчком правой кнопки и снятием галочки с пункта «Включено». Подобным образом точку можно удалить, щелкнув рабочей кнопкой (ЛКМ).

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

Кроме всех этих возможностей есть и еще масса других. К примеру, разработчик может просматривать всплывающие подсказки. Если приостановить отладчик, они доступны при наведении на PHP-идентификаторах. И это еще далеко не все. Существует масса окон, в которых можно конфигурировать отладку. Но рассмотрение этой информации уместно лишь в ракурсе разработки конкретных примеров. А сегодня на этом заканчиваем! Намного больше вы узнаете из документации и, конечно же, из личного опыта. Прописывая код самостоятельно, а после занимаясь его отладкой, вы поймете, как работает этот механизм. У нас все!