অবশেষে, আমি সমস্ত লোড হওয়া এক্সএমএল লেআউট মুদ্রণ করতে এবং জানতে পারি কীভাবে ম্যাজেন্টো 2 লেআউট কাজ করছে। এটি আমাদের কাস্টম মডিউল বিন্যাস লোড হয়েছে কিনা তা যাচাই করতে আমাদের সহায়তা করে। ধারণাটি হ'ল:
1 / আমরা একটি নতুন ডিরেক্টরি তৈরি Sample/Dev
। Sample/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
।