Якщо ви тимчасово працюєте з великою кількістю різних версій Magento, можливо, вам доведеться мати метод, наприклад Xdebug, для швидкої перевірки зворотного відстеження (debug backtrace) виконання функцій у Magento 2, без встановлення та вмикання додаткового програмного забезпечення на сервері.
У цьому випадку ви можете використовувати власну функцію backtrace Magento з класу \Magento\Framework\Debug і викликати її, коли вам потрібно:
\Magento\Framework\Debug::backtrace(false, true, false);
В результаті ви отримаєте такий HTML debug-backtrace:
Ви також можете викликати функцію виходу (exit function), щоб зупинити подальше виконання коду відразу після зворотного відстеження.
Ось додаткова інформація про метод зворотного відстеження:
/**
* Prints or returns a backtrace
*
* @param bool $return return or print
* @param bool $html output in HTML format
* @param bool $withArgs add short arguments of methods
* @return string|bool
*/
public static function backtrace($return = false, $html = true, $withArgs = true)
Додаткове рішення зворотного відстеження
Якщо вам не подобається зовнішній вигляд відстеження Magento за замовчуванням (default Magento backtrace), ви можете скористатися кастомною функцією. Просто тимчасово скопіюйте цей код у свій PHP клас:
public static function debugHtmlBacktrace($title = '')
{
$result = '';
foreach(debug_backtrace() as $_stack) {
$result .= '<tr>
<td>' . (isset($_stack['file']) ? $_stack['file'] : '') . '</td>
<td>' . (isset($_stack['line']) ? $_stack['line'] : '') . '</td>
<td>' . (isset($_stack['function']) ? $_stack['function'] : '') . '</td>
</tr>';
}
return '<br/>' . $title . '<table border="1">
<tr><td>File</td><td>Line</td><td>Function</td></tr>' . $result . '</table>';
}
і виконайте його за:
echo self::debugHtmlBacktrace();
ось приклад того, що ви отримаєте в результаті: