আমি কীভাবে লেভেল ফাইল প্রসেসিংটি ম্যাজেন্টো 2 এ ডিবাগ করব?


14

লেআউট ফাইল প্রসেসিং সম্পর্কে ম্যাজেন্টো 2 থিমের স্পেসিফিকেশন অনুসারে:

Magento অ্যাপ্লিকেশন নিম্নলিখিত ক্রমে লেআউট ফাইলগুলি প্রক্রিয়া করে:

1 / মডিউলগুলি থেকে সমস্ত লেআউট ফাইল সংগ্রহ করে। অ্যাপ্লিকেশন / ইত্যাদি / config.php থেকে মডিউল তালিকার মডিউলগুলির অর্ডার দ্বারা অর্ডার নির্ধারিত হয়।

২ / / উত্তরাধিকারসূত্রে প্রাপ্ত থিমগুলির ক্রম নির্ধারণ করে [, ...,]

৩ / / শেষ পূর্বপুরুষ থেকে বর্তমানের থিমগুলির ক্রমটি আইট্রেট করে:

ক। তালিকায় সমস্ত প্রসারিত থিম বিন্যাস ফাইল যুক্ত করে।

খ। তালিকায় ওভাররাইড লেআউট ফাইলগুলি প্রতিস্থাপন করে।

4. / তালিকা থেকে সমস্ত বিন্যাস ফাইল একত্রিত করে।

এই প্রক্রিয়াটির প্রতিটি পদক্ষেপের জন্য আমি কীভাবে ডিবাগ ফাইলটি দেখতে পারি?


ব্রেক পয়েন্ট কোথায় রাখবেন মানে? বা আপনি কি আশা করবেন?
বাসকামুজা

হাই, ধন্যবাদ. আমার মূল উদ্দেশ্যটি কীভাবে ম্যাজেন্টো 2 লেআউট রেন্ডার করে তা দেখতে "সমস্ত লেআউট ফাইলটি একত্রিত করে" মুদ্রণ করা। আমি আমার উত্তরটি নীচের হিসাবে যুক্ত করেছি।
thienphucvx

@ থিয়েনফুকভেক্স, আমি আপনার কোড ব্যবহার করেছি তবে আমি var / লগে .xML তৈরি করতে অক্ষম। আমার কি কিছু বদলাতে হবে?
শিক্ষার্থী

আপনি যে ডিগ্রিটি সঠিকভাবে "পর্যবেক্ষকের উত্তেজক পদ্ধতিতে var_dump কিছু" তৈরি করেছেন তা পরীক্ষা করছে কিনা তা পরীক্ষা করে দেখার জন্য আপনি ডিবাগ করার চেষ্টা করতে পারেন?
থিয়েনফুকভেক্স

1
এই বিকাশকারী অ্যাপ্লিকেশনটি দেখুন, এটি আপনাকে ডিবাগ প্রক্রিয়ায় সহায়তা করতে পারে: github.com/magesp विशेषज्ञist
ফিনিক্স

উত্তর:


16

অবশেষে, আমি সমস্ত লোড হওয়া এক্সএমএল লেআউট মুদ্রণ করতে এবং জানতে পারি কীভাবে ম্যাজেন্টো 2 লেআউট কাজ করছে। এটি আমাদের কাস্টম মডিউল বিন্যাস লোড হয়েছে কিনা তা যাচাই করতে আমাদের সহায়তা করে। ধারণাটি হ'ল:

  • আমরা একটি ইভেন্ট " লেআউট_জেনারেট_ব্লকস_কোথার " শুনি এবং সেই জায়গা থেকে সমস্ত বোঝাই গাছ পাই।

  • সমস্ত বোঝা গাছ একটি এক্সএমএল ফাইলে সংরক্ষণ করুন।

1 / আমরা একটি নতুন ডিরেক্টরি তৈরি Sample/DevSample/Dev/registration.phpআমাদের মডিউল ডিরেক্টরি সম্পর্কে Magento 2 দিয়ে ঘোষণা করতে তৈরি করুন ।

<?php

\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Sample_Dev',
    __DIR__
);

2 / তৈরি করুন Sample/Dev/etc/module.xml: ম্যাজেন্টো 2 কে আমাদের মডিউলটির সেটআপ সংস্করণ সম্পর্কে জানাতে দিন

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="module.xsd">
    <module name="Sample_Dev" setup_version="1.0.0" schema_version="1.0.0" release_version="1.0.1">
    </module>
</config>

3 / তৈরি করুন Sample/Dev/etc/frontend/events.xml। এই ফাইলে, আমরা ইভেন্ট "লেআউট_জেনারেট_ব্লোকস_একটি" শুনব

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">

    <event name="layout_generate_blocks_after">
        <observer name="thienphucvx_layout_generate_blocks_after" instance="Sample\Dev\Model\Layout" />
    </event>

</config>

4 / Sample/Dev/Model/Layout.phpনিচের মত সামগ্রী দিয়ে তৈরি করুন

<?php

namespace Sample\Dev\Model;
use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;
class Layout  implements ObserverInterface
{
    protected $_logger;
    public function __construct ( \Psr\Log\LoggerInterface $logger
    ) {
        $this->_logger = $logger;
    }

    public function execute(\Magento\Framework\Event\Observer $observer)
    {
        $xml = $observer->getEvent()->getLayout()->getXmlString();
        /*$this->_logger->debug($xml);*//*If you use it, check ouput string xml in var/debug.log*/
        $writer = new \Zend\Log\Writer\Stream(BP . '/var/log/layout_block.xml');
        $logger = new \Zend\Log\Logger();
        $logger->addWriter($writer);
        $logger->info($xml);
        return $this;
    }
}

5 / নতুন মডিউল সেট আপ করুন। আপনার হোম ওয়েবসাইট ডিরেক্টরিতে। সিএমডি কমান্ড লাইনে প্রবেশ করুন:

- পিএইচপি বিন / ম্যাজেন্টো মডিউল: নমুনা_দেব সক্ষম করুন

- পিএইচপি বিন / ম্যাজেন্টো সেটআপ: আপগ্রেড

/ / আপনি যে পৃষ্ঠাকে এক্সএমএল ফাইলটি দেখতে চান তা রিফ্রেশ করুন (উদাহরণস্বরূপ: আপনার হোম পৃষ্ঠা) এবং এতে আপনার হ্যান্ডেল এক্সএমএল ফাইলটি চেক করুন var/log/layout_block.xml


আমি কেবল এটি জুড়ে এসেছি এবং এটি আশ্চর্যজনক। আপনি কি Magento 2 এ জনসংযোগ জমা দিতে আপত্তি করবেন যাতে প্রত্যেকেরই এই বৈশিষ্ট্য থাকতে পারে? এমনকি একটি মডিউল প্রকাশ করা দুর্দান্ত সাহায্য করবে।
মবলপর্দা

হাই মবলপর্দা, আমি কীভাবে এটি করব তা জানি না। আপনি এটি জমা দিতে আমাকে সাহায্য করতে পারেন?
থিয়েনফুকভেক্স

হ্যাঁ আপনাকে টুইটারে পিন করেছে।
মবলপর্দা

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