Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

Отладка с поддержкой XDebug и PhpStorm на примере сайта 1С-Битрикс

Anna | 31.05.2014 | нет комментариев

В этой статье я расскажу как комфортно осуществлять отладку кода в PhpStorm на примере работы с веб-сайтом, работающем в системе 1C-Битрикс. Трудиться будем с IDE PhpStorm и отладчиком XDebug. Я полагаю, что на вашем сервере теснее установлен XDebug и у вас теснее сделан план в PhpStorm.

В данной статье примеры приводятся с таким комплектом инструментов:

  • Веб-сервер — MAMP PRO
  • XDebug v2.2.3.
  • IDE PhpStorm 7.1
  • На моем локальном серевере установлен 1С-Битрикс 14 версии с решением интернет-магазина.

Выходит, начнем.

Во время разработки Зачастую доводится применять функции типа print_r() либо echo для итога данных на экран. Я сам лично до недавнего времени применял функции типа:

function pre($array)
{
    echo '<pre>';
    print_r($array);
    echo "</pre>";
}

Эта функция печатала массив на экран и теснее в таком виде я его разбирал и вносил в код правки. Но что же делать, если принт громадного $arResult на странице недопустим? Что если на сайте теснее есть посетители и выводить системную информацию категорично невозможно (для удаленного дебага будет пригодна статья)? Тогда возникают еще больше увлекательные функции типа:

function pre2($array)
{
    global $USER;
    if($USER->isAdmin())
    {
        echo ‘<pre>’;
        print_r($array);
        echo ‘</pre>';
    }
}

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

XDebug и PhpStorm

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

image

Выше на скриншоте мы можем следить объект $APPLICATION в окне дебага файла /index.php. Мы получили полную информацию об объекте, в сгруппированном виде, при этом мы можем следить тип данных всякого элемента в объекте. И (внимание!) мы при этом нигде не писали ни каких var_dump() либо print_r()!

Настройка PhpStorm для отладки с поддержкой XDebug

Перед тем как начать пользоваться такой прелестью нам необходимо совершить несколько действий:

1. Настроить XDebug на сервере

Первым делом мы обязаны удостовериться, что на серевере установлен XDebug. В данной статье я не буду рассматривать процесс установки XDebug на сервере, об этом есть много статей в интернете. Лишь покажу что необходимо было сделать в MAMP, чтоб активировать XDebug:

Все действия совершались с файлом php.ini для сборки PHP версии 5.5.3. Как добраться к этому файлу в MAMP — ниже на скриншоте

image

В этом файле необходимо раскоммертировать строку
zend_extension=»/Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so»

и дописать строку
xdebug.remote_enable=1

image

Позже этого php_info() выдаст нам такую информацию:

image

XDebug готов к работе.

2. Настроить PhpStorm

Для приобретения данных от сайта в IDE нам необходимо их подружить. Для начала необходим верно настроенный сервер, к которому коннектится IDE при деплое. Переходим в настройки PhpStorm -> Deployment. Здесь значим параметр Webserver Root URL, необходимо указать URL корня вашего сайта. Пример моих настроек ниже:

image

Дальше переходим к настройке XDebug в PhpStorm: основное меню Run -> Edit Configurations

image

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

image

Выбираем настройку Php Web Application

image

Здесь необходимо настроить инструмент с поддержкой которого осуществляется дебаг, нажимаем на кнопку рядом с настройкой сервера:

image

Нажимаем на плюс, заполняем имя, хост сайта и нажимаем на Validate remote environment.

image

Там выбираем из списка тот сервер, тот, что настраивали выше и нажимаем Validate

image

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

3. Расстановка брейкпоинтов (breakpoints)

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

image

4. Запуск дебага

Дальше необходимо включить прослушивание 9000 порта, на тот, что XDebug будет посылать результат при запуске скрипта, и нажать на зеленого жука слева (расположений кнопок в windows версии PhpStorm может отличаться).

image

Позже нажатия на жука у нас должен открыться браузер

image

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

image

Источник: programmingmaster.ru
Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB