ম্যাজেন্টো 2-এ ডিবাগ ব্যাকট্রেস কীভাবে ব্যবহার করবেন?


16

ম্যাজেন্টো 1.x এ আমরা ব্যাকট্রেস ব্যবহার করতে পারি

echo Varien_Debug::backtrace(true, true); exit;

আমরা ম্যাজেন্টো 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
@ কৃষ্ণজজ্জাদতি 95 দেব আমার পক্ষে যে উত্তরটি কাজ করেছে তার জন্য ধন্যবাদ
আশীষ মদনঙ্কর এম 2 পেশাদারদা

14

ম্যাজেন্টো 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

যে কোনও পিএইচপি অ্যাপ্লিকেশনটিতে আপনি কেবল এটি করতে পারেন:

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

এম 2-তে নামের ব্যবধানের কারণে আপনাকে ন্যায়বিচারের new \Exception();পরিবর্তে ব্যবহার করতে হবেnew Exception();


উত্তরের জন্য আমি চেষ্টা করেছিলাম বলে মনে করি তবে এটি বলে ক্লাস এক্সেপশন 'আমার কলিং ক্লাসের পথে পাওয়া যায় নি
আশীষ মদনঙ্কর এম 2 পেশাদারদা

@ আশিষমাদঙ্কর - সম্পাদনা দেখুন!
পারস সুদ

বা আরও সংক্ষিপ্ত: print_r((new \Exception())->getTraceAsString());(পিএইচপি 5.4 যেহেতু এম 2 তে ব্যবহারের পক্ষে নিরাপদ)
7:39

1
@ পারসসুদ এটিও কাজ করছে
আশীষ মাদানকার এম 2 পেশাদার

0

আপনি ম্যাজেন্টোতে ডিবাগ করার জন্য পিএইচপি ফাংশন ডিবাগ_ব্যাকট্রেস ব্যবহার করতে পারেন ।

ডিবাগ_ব্যাকট্রেস ব্যবহার করে সমস্যাটি ট্র্যাক করতে ম্যাজেন্টোতে নিম্নলিখিত কোডগুলি ব্যবহার করুন

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

আপনি ডিবাগ ব্যাকট্রেস দেখতে পাবেন যা আপনাকে সমস্যার উত্সটি সংজ্ঞায়িত করতে অনুমতি দেবে এবং কীভাবে সমস্যাটি সমাধান করবেন সে সম্পর্কে আপনি একটি ধারণা পাবেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.