FAQ и советы Битрикс


Возможности отладки php в Битрикс (Bitrix debug)

Выводить информацию об отладки в битрикс можно множеством способов. давайте их все перечислим.

Традиционная отладка или отладка в старом ядре


echo $var - самый простой
var_damp($var_object) - возможность выводить информацию об объекте
print_r($arResult) - удобно выводить информацию об массиве
<pre><?print_r($o)?></pre> - вывести с форматированием

Удобная функция для вывода форматированной информации отладочной информации в Битрикс ещё и в красивом виде. Нужно разместить в файле 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"]);
    ?>
    <div style='font-size:9pt; color:#000; background:#fff; border:1px dashed #000;'>
    <div style='padding:3px 5px; background:#99CCFF; font-weight:bold;'>File: <?=$bt["file"]?> [<?=$bt["line"]?>]</div>
    <pre style='padding:10px; color: black'><?print_r($o)?></pre>
    </div>
    <?
}


Если задать файл лога в параметрах <итрикс в фале dbconn.php
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'); - в текущую директорию



Количество показов: 1026

Возврат к списку