Magento 1.x sürümünde backtrace
echo Varien_Debug::backtrace(true, true); exit;
Magento 2'deki bu tesisi nasıl kullanabiliriz?
Magento 1.x sürümünde backtrace
echo Varien_Debug::backtrace(true, true); exit;
Magento 2'deki bu tesisi nasıl kullanabiliriz?
Yanıtlar:
debug_backtrace()
Aşağıda eklediğim gibi kullanabilirsiniz .
$debugBackTrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
foreach ($debugBackTrace as $item) {
echo @$item['class'] . @$item['type'] . @$item['function'] . "\n";
}
Referans için lütfen kontrol edin
dev\tests\api-functional\framework\Magento\TestFramework\TestCase\Webapi\Adapter\Rest\DocumentationGenerator.php
Magento 2'nin logger sınıflarında, debug_backtrace
yöntem doğrudan kullanılmaz.
Yani Magento 2 geri izlemenin yolu, Magento\Framework\Debug
sınıfı (M1 Varien_Debug
sınıfının eşdeğeri ) kullanmak ve backtrace()
yöntemi çağırmaktır :
/**
* 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);
}
Herhangi bir PHP uygulamasında şunları yapabilirsiniz:
$e = new \Exception();
echo '<pre>';
print_r($e->getTraceAsString());
exit;
M2'deki ad aralığı nedeniyle new \Exception();
, sadece yerine kullanmanız gerekirnew Exception();
print_r((new \Exception())->getTraceAsString());
(PHP 5.4'ten beri,
Magento'da hata ayıklamak için debug_backtrace PHP işlevini kullanabilirsiniz .
Debug_backtrace kullanarak sorunu izlemek için magento'da aşağıdaki kodu kullanın
foreach (debug_backtrace() as $_stack) {
echo ($_stack["file"] ? $_stack["file"] : '') . ':' .
($_stack["line"] ? $_stack["line"] : '') . ' - ' .
($_stack["function"] ? $_stack["function"] : '').'<br/><hr/>';
}
exit();
Sorun kaynağını tanımlamanıza izin verecek hata ayıklama geri izini göreceksiniz ve sorunun nasıl çözüleceği hakkında bir fikir edineceksiniz.
@
örneğin yokken uyarıları'class'