Last active
March 5, 2023 12:00
-
-
Save s2ar/f3b0cfb93b93fd3505e0c664f950d0c4 to your computer and use it in GitHub Desktop.
Отладка SQL-запросов
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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