Начало работы с PHP в NetBeans

Сперва следует установить NetBeans, скачав свежую версию. Если вы планируете работать только с языком PHP, можно скачать комплект "PHP", но если вы начинаете работать с NetBeans в образовательных целях, или в будущем вам понадобятся другие языки, то стоит скачать комплект "All", в который входит и PHP, и Java, и всё остальное.

Создание проекта NetBeans

Чтобы начать работать в NetBeans, следует создать проект. Проект - это набор файлов с исходным текстом программы, ресурсами (картинки и так далее), а также с различной конфигурацией. В NetBeans каждый проект располагается в своей отдельной папке, причём NetBeans размещает свою служебную информацию в подпапке под названием "nbproject". Структура папок проекта NetBeans выглядит примерно так:

/проект                    - папка с проектом
/проект/nbproject          - общие настройки проекта
/проект/nbproject/private  - ваши персональные настройки проекта
/проект/*                  - остальные файлы проекта

Персональные настройки от общих отличаются тем, что персональные зависят от вашей системы: они содержат пути к файлам и URL на вашей машине, тогда как общие настройки не содержат ничего, что было бы специфично для конкретного компьютера. При использовании системы управления версиями (SVN, GIT, ит.д.) папка nbproject/private не должна находиться в репозитарии проекта.
 

Начать работу с PHP можно создав новый проект, причём проект можно создать как "с нуля", так и для уже существующего исходного кода, который ещё не является проектом NetBeans. Создадётся проект так:

File - New Project... - (здесь надо выбрать - новый проект или проект из существующих исходников).

В случае с новым проектом, NetBeans создаст один файл index.php в корневой папке проекта с примерно таким содержимым:

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        // put your code here
        ?>
    </body>
</html>

Настройка отладчика PHP в NetBeans

Для того, чтобы попробовать возможности отладчика PHP, надо чтобы к PHP на вашем сервере (или на локальном компьютере) был подключен модуль XDebug. Кроме этого, в настройках NetBeans по адресу Tools - Options - PHP надо отключить галочку "Stop at first line". Если эта галочка останется включенной, то ваш скрипт при отладке будет останавливаться на самой первой строке, как если бы там стояла точка останова. Это годится только для мелких проектов, но для средних и больших это не нужно, так как отладчик будет останавливаться в каждом включаемом PHP-файле в его начале.

Здесь же, на странице Tools - Options - PHP, видны настройки для связи с отладчиком, а именно, порт 9000. Этот номер порта по умолчанию используется XDebug и NetBeans, порт должен быть одинаковым и в XDebug и в NetBeans.

Начало отладки

Для начала отладки достаточно нажать кнопку Debug Project на тулбаре NetBeans. При этом запустится ваш любимый веб-браузер, а в нём будет открыт URL примерно такого вида:

http://localhost/test/index.php?XDEBUG_SESSION_START=netbeans-xdebug

Параметр XDEBUG_SESSION_START=netbeans-xdebug даёт команду XDebug, работающему на сервере, начать отладочную сессию. При этом XDebug установит связь с NetBeans по сконфигурированному в php.ini номеру порта. Этот номер должен совпадать с номером порта, на котором NetBeans ждёт подключения (по умолчанию 9000). Когда отладочная сессия будет инициирована и свзяь между NetBeans и XDebug установлена, в NetBeans на статусной панели в самом низу окна отобразится состояние отладочной сессии: .

Теперь можно немного поиграться с отладчиком. Поменяем исходный код index.php, который для нас сделал NetBeans, чтобы было интереснее:

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        $now = date('Y-m-d H:i:s');
        echo $now;
        ?>
    </body>
</html>

Добавим точку останова на строке $now = date(...), кликнув по полю слева от текста программы:

Теперь, при заходе на test.php браузером, выполнение скрипта будет приостановлено, а в отладчике строка останова подсветится зелёным.

Теперь можно проходить скрипт по шагам, выполняя за один шаг одну строку программы. Это делается кнопками на панели управления и быстрыми клавишами с клавиатуры:

При этом, когда программа остановлена, в окне Variables отображаются текущие значения всех переменных (как локальных, так и глобальных):

Здесь следует знать вот о чём: по умолчанию NetBeans не показывает переменные, значение которых NULL! Это может поначалу повергнуть в шок, когда перед глазами программа, в которой написано $x = null; но в списке значений переменных эта переменная отсутствует. Чем руководствовались разработчики NetBeans, делая такое, мне неизвестно, но это странное поведение можно исправить, кликнув правой кнопкой в список переменных в окне Variables, выбрать в меню Filters..., а в открывшемся окне поставить галочку в NULL type:

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