Якщо ви працюєте з багатьма різними екземплярами Magento як з тимчасовим проектом, вам може знадобитися зручний метод для швидкої перевірки зворотного трасування виконання деяких функцій у Magento 2 без встановлення або ввімкнення додаткового програмного забезпечення на сервері, наприклад, Xdebug.
У цьому випадку ви можете використовувати рідну платформу Magento. функція backtrace з класу \Magento\Framework\Debug та викликайте її щоразу, коли вам потрібно:
\Magento\Framework\Debug::backtrace(false, true, false);
В результаті ви отримаєте цей гарний HTML-код debug-backtrace:
![]()
Ви також можете викликати функцію exit , щоб зупинити подальше виконання коду одразу після backtrace.
Ось більше інформації про метод backtrace:
/**
* 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)
Додаткове рішення для backtrace налагодження
Якщо вам не подобається вигляд стандартного backtrace Magento, ви можете використовувати власну функцію. Просто тимчасово скопіюйте цей код у свій 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();
Ось приклад результату:
![]()