In Magento 1.x können wir Backtrace wie verwenden
echo Varien_Debug::backtrace(true, true); exit;
Wie können wir diese Funktion in Magento 2 nutzen?
In Magento 1.x können wir Backtrace wie verwenden
echo Varien_Debug::backtrace(true, true); exit;
Wie können wir diese Funktion in Magento 2 nutzen?
Antworten:
Sie können verwenden, debug_backtrace()
wie ich unten hinzugefügt habe.
$debugBackTrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
foreach ($debugBackTrace as $item) {
echo @$item['class'] . @$item['type'] . @$item['function'] . "\n";
}
Als Referenz bitte überprüfen
dev\tests\api-functional\framework\Magento\TestFramework\TestCase\Webapi\Adapter\Rest\DocumentationGenerator.php
In den Logger-Klassen von Magento 2 wird die debug_backtrace
Methode nicht direkt verwendet.
Die Magento 2-Methode zum Zurückverfolgen besteht also darin, die Magento\Framework\Debug
Klasse (die der M1- Varien_Debug
Klasse entspricht) zu verwenden und die folgende backtrace()
Methode aufzurufen :
/**
* 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)
{
$trace = debug_backtrace();
return self::trace($trace, $return, $html, $withArgs);
}
In jeder PHP-Anwendung können Sie einfach Folgendes tun:
$e = new \Exception();
echo '<pre>';
print_r($e->getTraceAsString());
exit;
Aufgrund des Namensabstands in M2 müssen Sie new \Exception();
statt nur verwendennew Exception();
print_r((new \Exception())->getTraceAsString());
(seit PHP 5.4, also sicher in M2 zu verwenden)
Sie können die PHP-Funktion debug_backtrace zum Debuggen in Magento verwenden.
Verwenden Sie den folgenden Code in Magento, um das Problem mithilfe von debug_backtrace zu verfolgen
foreach (debug_backtrace() as $_stack) {
echo ($_stack["file"] ? $_stack["file"] : '') . ':' .
($_stack["line"] ? $_stack["line"] : '') . ' - ' .
($_stack["function"] ? $_stack["function"] : '').'<br/><hr/>';
}
exit();
Sie sehen den Debug-Backtrace, mit dem Sie die Problemquelle definieren können, und erhalten eine Vorstellung davon, wie Sie das Problem beheben können.
@
zu'class'