FAQ и советы Битрикс
Возможности отладки php в Битрикс (Bitrix debug)
Выводить информацию об отладки в битрикс можно множеством способов. давайте их все перечислим.Традиционная отладка или отладка в старом ядре
echo $var - самый простой
var_damp($var_object) - возможность выводить информацию об объекте
print_r($arResult) - удобно выводить информацию об массиве
- вывести с форматированием
Удобная функция для вывода форматированной информации отладочной информации в Битрикс ещё и в красивом виде. Нужно разместить в файле init.php
Код:
function pr($o)
{
$bt = debug_backtrace();
$bt = $bt[0];
$dRoot = $_SERVER["DOCUMENT_ROOT"];
$dRoot = str_replace("/","\\",$dRoot);
$bt["file"] = str_replace($dRoot,"",$bt["file"]);
$dRoot = str_replace("\\","/",$dRoot);
$bt["file"] = str_replace($dRoot,"",$bt["file"]);
?>
}
{
$bt = debug_backtrace();
$bt = $bt[0];
$dRoot = $_SERVER["DOCUMENT_ROOT"];
$dRoot = str_replace("/","\\",$dRoot);
$bt["file"] = str_replace($dRoot,"",$bt["file"]);
$dRoot = str_replace("\\","/",$dRoot);
$bt["file"] = str_replace($dRoot,"",$bt["file"]);
?>
File: =$bt["file"]?> [=$bt["line"]?>]
}
Если задать файл лога в параметрах <итрикс в фале dbconn.php
define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/bitrix/log-intervolga.txt");
Можно выводить в этот файл любую отладочную информацию
AddMessage2Log($_SERVER);
define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/bitrix/log-intervolga.txt");
Можно выводить в этот файл любую отладочную информацию
AddMessage2Log($_SERVER);
Отладка на ядре Bitrix D7
Определяем пространство имен
use Bitrix\Main\Diag\Debug;
Debug::dump($_SERVER) - вывод подобно var_damp
Debug::dumpToFile($_SERVER) - вывод в файл в стиле var_damp
Debug::writeToFile($_SERVER) - вывод в файл в стиле print_r
Например я использую так
Код:
use Bitrix\Main\Diag\Debug;
Debug::dump($templateFolder, 'templateFolder');
Debug::writeToFile($arResult, 'arResult', $templateFolder.'/debug.txt');
Debug::writeToFile($APPLICATION->sDirPath, 'arResult', $APPLICATION->sDirPath.'debug.txt'); - в текущую директорию
Debug::dump($templateFolder, 'templateFolder');
Debug::writeToFile($arResult, 'arResult', $templateFolder.'/debug.txt');
Debug::writeToFile($APPLICATION->sDirPath, 'arResult', $APPLICATION->sDirPath.'debug.txt'); - в текущую директорию