Magento 2'de Debug Backtrace nasıl kullanılır?


Yanıtlar:


17

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


1
Cevabınızı düzenledim. Yanlış sözdizimi bir parça vardı, ayrıca daha iyi bir çıktı elde etmek için değiştirdim ( @örneğin yokken uyarıları 'class'
yoksaydım

2
Benim için çalışan cevap için teşekkürler
Ashish Madankar M2 Professiona

14

Magento 2'nin logger sınıflarında, debug_backtraceyöntem doğrudan kullanılmaz.

Yani Magento 2 geri izlemenin yolu, Magento\Framework\Debugsınıfı (M1 Varien_Debugsı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);
}

4
Bu kabul edilen cevap olmalı.
mpchadwick

5

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();


cevap için teşekkürler ben denedim ama diyor ki sınıf İstisna 'benim arayan sınıf yolunda bulunamadı
Ashish Madankar M2 Professiona

@AshishMadankar - bakınız düzenleme!
Paras Sood

Veya daha kısa: print_r((new \Exception())->getTraceAsString());(PHP 5.4'ten beri,
M2'de

1
@ParasSood da çalışıyor
Ashish Madankar M2 Professiona

0

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.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.