PHP. Разработка модуля комментариев для сайта

Дмитрий Приходько, 2021

В книге рассмотрен вариант разработки модуля комментариев для сайта на чистом языке php в процедурном стиле.

Оглавление

1.4 Отладчик

Для отладки использовалась доработанная функция dumper(), предложенная в книге [2.С.225]. Моя доработка заключалась в замене функции each(), которая не поддерживается в версиях языка PHP выше 7.2, на цикл foreach. Скрипт с функциями размещаем в отдельном файле dumper.php и будем подключать в шапке «проблемной» страницы для вызова функции dumper().

Листинг 1. dumper.php

<?php

// Функция для вывода содержимого переменной

// Распечатывает дамп переменной на экран

function dumper($obj)

{

echo

"<pre>",

htmlspecialchars(dumperGet($obj)),

"</pre>";

}

// Возвращает строку — дамп значения переменной в древовидной форме

// (если это массив или объект). В переменной $leftSp хранится

// строка с пробелами, которая будет выводиться слева от текста.

function dumperGet(&$obj, $leftSp ="")

{

if (is_array($obj)) {

$type ="Array[". count($obj)."]";

} elseif (is_object($obj)) {

$type ="Object";

} elseif (gettype($obj) =="boolean") {

return $obj?"true":"false";

} else {

return"\"$obj\"";

}

$buf = $type;

$leftSp.="";

foreach ($obj as $k => $v) {

Reset($obj);

if ($k ==="GLOBALS") {

continue;

}

$buf.="\n$leftSp$k =>". dumperGet($v, $leftSp);

}

return $buf;

}

Данная функция выводит содержимое любой, сколь угодно сложной переменной, будь то массив, объект или простая переменная, в гораздо более удобном виде чем стандартные print_r() или var_dump().

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

Ложим файл dumper.php в корень папки chat.

Скорее всего при работе с книгой рано или поздно у вас возникнут сложности с пониманием того как действует тот или иной код. Поэтому советую создать пустой файл php и назвать его допустим test.php. В шапке этого файла подключить данную функцию при помощи инструкции include. Разместить test.php в корне сайта и использовать как страницу отладки непонятного кода. Отладку делать эмпирическим путем. Вставляя непонятный код и запуская страницу для проверки того, что этот код делает, ну или не делает.

Проект относительно небольшой, поэтому с моей точки зрения, это гораздо удобнее и нагляднее, да и полезнее, чем использовать XDebug или отладчик VS Code.

Постановка задачи

Смотрите также

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