Magento 2 में डीबग बैकट्रेस का उपयोग कैसे करें?


जवाबों:


17

debug_backtrace()जैसा कि मैंने नीचे जोड़ा है आप उपयोग कर सकते हैं ।

$debugBackTrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
foreach ($debugBackTrace as $item) {
    echo @$item['class'] . @$item['type'] . @$item['function'] . "\n";
}

संदर्भ के लिए कृपया जाँच करें dev\tests\api-functional\framework\Magento\TestFramework\TestCase\Webapi\Adapter\Rest\DocumentationGenerator.php


1
मैंने आपका उत्तर संपादित कर दिया। गलत सिंटैक्स का एक टुकड़ा था, मैंने इसे बेहतर आउटपुट के लिए भी बदल दिया (मैं @चेतावनी को अनदेखा 'class'करता था , उदाहरण के लिए जब मौजूद नहीं है)
7ochem

2
@ krishnaijjadaati95Dev उत्तर के लिए धन्यवाद, यह मेरे लिए काम करता है
आशीष मदनकर एम 2 प्रोफेशन

14

Magento 2 के लकड़हारा वर्गों में, debug_backtraceविधि सीधे उपयोग नहीं की जाती है।

इसलिए बैकट्रेस करने का मैगनेटो 2 तरीका Magento\Framework\Debugवर्ग का उपयोग करना है (जो एम 1 Varien_Debugवर्ग के बराबर है ) और 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)
{
    $trace = debug_backtrace();
    return self::trace($trace, $return, $html, $withArgs);
}

4
यह स्वीकृत उत्तर होना चाहिए।
एमपीचैडविक

5

किसी भी PHP आवेदन में आप बस कर सकते हैं:

$e = new \Exception();
echo '<pre>';
print_r($e->getTraceAsString()); 
exit;

M2 में नाम रिक्ति के कारण, आपको new \Exception();बस के बजाय उपयोग करने की आवश्यकता हैnew Exception();


उत्तर के लिए धन्यवाद मैंने कोशिश की, लेकिन यह कहता है कि क्लास एक्सेप्शन 'मेरे कॉलिंग क्लास के रास्ते में नहीं मिला
आशीष मदनकर एम 2 प्रोफेशन

@AishishMadankar - संपादित देखें!
पारस सूद

या कम: print_r((new \Exception())->getTraceAsString());(PHP 5.4 के बाद से, M2 में उपयोग करने के लिए इतना सुरक्षित)
7ochem

1
@ParasSood भी काम कर रहा है
आशीष मदनकर M2 प्रोफेशन

0

आप Magento में डीबग करने के लिए PHP फ़ंक्शन डीबग_बैकट्रेस का उपयोग कर सकते हैं ।

Debug_backtrace का उपयोग करके समस्या को ट्रैक करने के लिए magento में निम्न कोड का उपयोग करें

foreach (debug_backtrace() as $_stack) {
    echo ($_stack["file"] ? $_stack["file"] : '') . ':' .
        ($_stack["line"] ? $_stack["line"] : '') . ' - ' .
        ($_stack["function"] ? $_stack["function"] : '').'<br/><hr/>';
 }
exit();

आप डिबग बैकट्रेस देखेंगे जो आपको समस्या स्रोत को परिभाषित करने की अनुमति देगा और आपको एक विचार मिलेगा कि समस्या को कैसे ठीक किया जाए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.