Skip to content

Instantly share code, notes, and snippets.

@s2ar
Last active March 5, 2023 12:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save s2ar/f3b0cfb93b93fd3505e0c664f950d0c4 to your computer and use it in GitHub Desktop.
Save s2ar/f3b0cfb93b93fd3505e0c664f950d0c4 to your computer and use it in GitHub Desktop.
Отладка SQL-запросов
<?php
use Bitrix\Main\Diag;
$connection = Bitrix\Main\Application::getConnection();
/** Bitrix\Main\Diag\SqlTracker $tracker */
$tracker = $connection->startTracker();
// ...
$connection->stopTracker();
foreach ($tracker->getQueries() as $query) {
var_dump($query->getSql()); // Текст запроса
var_dump($query->getTrace()); // Стек вызовов функций, которые привели к выполнению запроса
var_dump($query->getTime()); // Время выполнения запроса в секундах
}
//https://mrcappuccino.ru/blog/post/bitrix-d7-debug
// Или так
$query = new Bitrix\Main\Entity\Query(Bitrix\Iblock\ElementTable::getEntity());
echo '<pre>', $query->getLastQuery(), '</pre>';
//Замер времени выполнения кода
Diag\Debug::startTimeLabel("label1");
// ...некоторые действия...
Diag\Debug::endTimeLabel("label1");
// далее можем использовать другие метки на других кусках кода
Diag\Debug::dump(Diag\Debug::getTimeLabels());
/*
Выведет на экран:
array(1) {
["label1"]=>
array(2) {
["start"]=>
float(1473415593.0706)
["time"]=>
float(1.215934753418E-5)
}
}
*/
Diag\Helper::getCurrentMicrotime(); //возвращает текущую метку времени с микросекундами.
Diag\Helper::getBackTrace(); //возвращает стек вызовов функций.
// Обычный дамп
\CSaleHelper::WriteToLog("basketRow", array(
//"basketRow" => print_r($basketRow,1)
"calcDiff" => print_r($calcDiff,1)
), "STEP2");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment