Добрый вечер!
Представляю вам небольшой отладчик для Битрикса. Надоело мне все время писать print_r, или использовать навешанную на горячую клавишу самописную функцию или участок кода аля if($USER->GetID()==15){...}, в которую все равно приходилось вписывать имя переменной или массива. И объединил я все это в
Функционал дебаггера:
Рекомендую просмотреть ознакомительные ролики , , чтобы не читать пост
Шаг 1. Подключение отладчика.
Копируем содержимое архива в /bitrix/php_interface/BXDebugger/
в init.php добавляем строчку:
Шаг 2. Включение/Выключение отладчика.
После того как вы подключили файлы отладчика в init.php, в публичной части сайта на "Панели инструментов" рядом с кнопкой "Выйти" появится зеленая кнопка "START DEBUG" (см. рисунок ниже).

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

Шаг 3. Добавление точки остановки в исходный код.
Для примера откроем страницу index.php и добавим туда такой код:
или
функция dbg - вызывает остановку сценария в месте где она вызвана. На вход она получает ID или Login пользователя, под которым вы работаете (обязательно с правами администратора) и массив переменных среди которых будет произведен поиск. Теперь сценарий будет прерван только для пользователя, который указан в функции dbg.
Шаг 4. Вывод отладочной информации на экран.
Для того чтобы отследить значение какой нибудь переменной, необходимо добавить ее в список. Для этого вводим ее имя в поле add variable(array) и жмем ОК. список переменных сохраняется в файле array.php, поэтому нет необходимости добавлять одну и ту же переменную на каждом шаге.

После добавления переменной, она появляется в списке. Слева имя переменной, справа - значение или тип. Переменную можно удалить из списка, нажав на красный крестик справа. Слева от имени меременой, в ромбике стоит буква, обозначающая тип переменной. (String, boolean, double, integer)

Чтобы просмотреть значение переменной в всплывающем окне, кликните на него.

На скриншоте вы можете видеть в правом верхнем углу таинственную надпись mark name: dbg, о ней читайте в Шаге 6.
Шаг 5. Пошаговая отладка.
для примера разберем следующий код:
запустите отладчик и понажимайте стрелки "NEXT STEP" и "PREV STEP", вы увидите, что при переходе на следующий шаг, первый вызов функции игнорируется, затем второй и так далее.
Можно dbg(1, get_defined_vars()) вставлять в цикл и следить за переменными цикла, например за изменением arItem в шаблоне компонента news.list
Шаг 6. Вывод имен меток.
Что это такое? Рассказываю. Иногда надо поставить разные метки в разных участках скрипта и посмотреть какое условие выполняется. Что мы обычно для этого делаем? Вот что:
можно сделать тоже самое при помощи глобальной переменной $BXD, но при этом получить доступ ко всем объявленным переменным и просмотреть их в окне дебаггера.
Можно писать любое имя метода и вы будете знать где у вас сработала точка остановки.

P.S.
Естественно функции dbg() и варианты $BXD->mark1(), $BXD->mark2() и т.д. нужно повесить на горячие клавиши вашего текстового редактора для удобства.
Верстку смотрел в FF3.6 и Opera 9.64, в остальных не знаю как себя ведет. И еще не видел как выводятся кнопки дебаггера с новой админ панелью Битрикса
И если картинки кнопок не отображаются, пошаманьте над .htaccess в /php_interface/
ссылки на скачивание:
Представляю вам небольшой отладчик для Битрикса. Надоело мне все время писать print_r, или использовать навешанную на горячую клавишу самописную функцию или участок кода аля if($USER->GetID()==15){...}, в которую все равно приходилось вписывать имя переменной или массива. И объединил я все это в
Функционал дебаггера:
- установка множества точек остановки в скрипте;
- прерывание скрипта только для определенного пользователя, прозрачная работа скриптов для других пользователей;
- добавление/удаление переменных в список отслеживаемых;
- пошаговая отладка скрипта;
- вывод меток, идентифицирующих точку остановки скрипта;
- просмотр типа переменной и ее значения, просмотр значения в сплывающем окне;
- пользовательский интерфейс.
Рекомендую просмотреть ознакомительные ролики , , чтобы не читать пост

Шаг 1. Подключение отладчика.
Копируем содержимое архива в /bitrix/php_interface/BXDebugger/
в init.php добавляем строчку:
require_once(dirname(__FILE__)."/BXDebugger/include.php"); |
Шаг 2. Включение/Выключение отладчика.
После того как вы подключили файлы отладчика в init.php, в публичной части сайта на "Панели инструментов" рядом с кнопкой "Выйти" появится зеленая кнопка "START DEBUG" (см. рисунок ниже).

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

Шаг 3. Добавление точки остановки в исходный код.
Для примера откроем страницу index.php и добавим туда такой код:
$TEST = "HELLO WORLD!!!"; $MORE_VARIABLE = 345+678/76; dbg(1, get_defined_vars()); |
или
$TEST = "HELLO WORLD!!!";
$MORE_VARIABLE = 345+678/76;
dbg('admin', get_defined_vars());
|
функция dbg - вызывает остановку сценария в месте где она вызвана. На вход она получает ID или Login пользователя, под которым вы работаете (обязательно с правами администратора) и массив переменных среди которых будет произведен поиск. Теперь сценарий будет прерван только для пользователя, который указан в функции dbg.
Шаг 4. Вывод отладочной информации на экран.
Для того чтобы отследить значение какой нибудь переменной, необходимо добавить ее в список. Для этого вводим ее имя в поле add variable(array) и жмем ОК. список переменных сохраняется в файле array.php, поэтому нет необходимости добавлять одну и ту же переменную на каждом шаге.

После добавления переменной, она появляется в списке. Слева имя переменной, справа - значение или тип. Переменную можно удалить из списка, нажав на красный крестик справа. Слева от имени меременой, в ромбике стоит буква, обозначающая тип переменной. (String, boolean, double, integer)

Чтобы просмотреть значение переменной в всплывающем окне, кликните на него.

На скриншоте вы можете видеть в правом верхнем углу таинственную надпись mark name: dbg, о ней читайте в Шаге 6.
Шаг 5. Пошаговая отладка.
для примера разберем следующий код:
$TEST = "HELLO WORLD!!!"; $MORE_VARIABLE = 345+678/76; dbg(1, get_defined_vars()); $TEST = "ANOTHER HELLO WORLD!!!"; $MORE_VARIABLE = "GO GO GO"; dbg(1, get_defined_vars()); $TEST = 9999977777; $MORE_VARIABLE = "Чебурашка"; dbg(1, get_defined_vars()); |
запустите отладчик и понажимайте стрелки "NEXT STEP" и "PREV STEP", вы увидите, что при переходе на следующий шаг, первый вызов функции игнорируется, затем второй и так далее.
Можно dbg(1, get_defined_vars()) вставлять в цикл и следить за переменными цикла, например за изменением arItem в шаблоне компонента news.list
Шаг 6. Вывод имен меток.
Что это такое? Рассказываю. Иногда надо поставить разные метки в разных участках скрипта и посмотреть какое условие выполняется. Что мы обычно для этого делаем? Вот что:
if(...)
{
echo "1";
}
else
{
echo "2";
}
|
можно сделать тоже самое при помощи глобальной переменной $BXD, но при этом получить доступ ко всем объявленным переменным и просмотреть их в окне дебаггера.
if(...)
{
$BXD->its_first_mark(1, get_defined_vars());
}
else
{
$BXD->tralala_lalala(1, get_defined_vars());
}
|
Можно писать любое имя метода и вы будете знать где у вас сработала точка остановки.

P.S.
Естественно функции dbg() и варианты $BXD->mark1(), $BXD->mark2() и т.д. нужно повесить на горячие клавиши вашего текстового редактора для удобства.
Верстку смотрел в FF3.6 и Opera 9.64, в остальных не знаю как себя ведет. И еще не видел как выводятся кнопки дебаггера с новой админ панелью Битрикса

И если картинки кнопок не отображаются, пошаманьте над .htaccess в /php_interface/
ссылки на скачивание: