ম্যাজেন্টো 1-এ, আপনি যদি নিজের কন্ট্রোলার অ্যাকশন থেকে "ভিউ" (যেমন আপনার বিন্যাসের একটি ব্লক, আপনি করতে পারেন) তে ডেটা পাঠাতে চান
এর মাধ্যমে গ্লোবাল রেজিস্ট্রিতে একটি মান / অবজেক্ট যুক্ত করুন
Mage::register
সরাসরি একটি ব্লক অবজেক্ট আনুন এবং চলার পরে ফেচড ব্লক অবজেক্টে ডেটা বৈশিষ্ট্য সেট করুন
loadLayout
phtml
ফাইলগুলিতে ব্লক অবজেক্টগুলিতে কল করার পদ্ধতিগুলি কল করুন এবং ব্লক অবজেক্টগুলি নিয়ামক ক্রিয়ায় পূর্বে সংরক্ষিত ডেটা পড়তে মডেল / ডাটাবেস স্তরটি ব্যবহার করুন
ডাটাবেস থেকে পড়ার জন্য ব্লক অবজেক্ট পদ্ধতি ব্যবহার করা এখনও ম্যাজেন্টো 2 তে কাজ করে বলে মনে হচ্ছে - যা নির্দিষ্ট ধরণের ক্রিয়াকলাপের জন্য উপযুক্ত। যাহোক,
Magento 2 এ আর কোনও বৈশ্বিক রেজিস্ট্রি নেই (বা আছে?)
লেআউট সিস্টেমটি এখন কোনও কারখানার মাধ্যমে একটি পৃষ্ঠা অবজেক্ট তৈরি করে কাজ করে এবং আপনি Magento 1 এ ব্লক রেফারেন্সগুলি একইভাবে দখল করতে পারবেন না 1
নিয়ামক পদক্ষেপ থেকে সরাসরি কোনও দৃশ্যে ডেটা পাঠানো কি ম্যাজেন্টো 2 এ সম্ভব? বা এটি কি ম্যাগান্তোর সাহসী নতুন ডিজাইনের প্যাটার্ন-বিশ্বের পক্ষে কোনও আদর্শ? এটি যদি কোনও নিদর্শনকে সরাসরি নির্দেশ দেয় তবে আমরা কোনও টেম্পলেটে কিছু গণনা করা তথ্য প্রদর্শন করতে চাইলে কী করা উচিত, তবে সেই তথ্যটি একটি রাষ্ট্রীয় সিস্টেমে সংরক্ষণ করতে চাই না (যেমন আমরা এটিতে সংরক্ষণ করতে চাই না) তথ্যশালা)
আমি এই একসঙ্গে নিজেকে হ্যাক করুন কয়েক বিভিন্ন উপায় মনে করতে পারেন - কিন্তু আমি কিভাবে Magento 2 আগ্রহী চায় আপনি এটা করতে হয়।
দ্রষ্টব্য : আমি বুঝতে পারি যে এটির মতো কোনও কিছু ব্যবহার করে একটি নিয়ামক ক্রিয়াকলাপে একটি ব্লক উদাহরণ পাওয়া সম্ভব
$resultPage = $this->resultPageFactory->create();
$block = $resultPage->getLayout()->getBlock('catalog.wysiwyg.js');
var_dump(spl_object_hash($block));
ম্যাজেন্টো 2 কোর কোডটি প্রায়শই এটি করে। তবে - কন্ট্রোলার অবজেক্টে আটকানো ব্লক অবজেক্টটি যে কোনও একটি phtml
টেমপ্লেটে পাওয়া যায় না তার চেয়ে পৃথক বস্তু বলে মনে হয় $this
বা $block
(প্রাক্তন ( $this
) এমন বস্তু হিসাবে প্রতীয়মান হয় যা আসলে টেমপ্লেটটি রেন্ডার করে, যেখানে পরে ( $block
) বলে মনে হয় ম্যাজেন্টো ব্লক প্রকারের উদাহরণ)।
#File: path/to/template.phtml
var_dump(spl_object_hash($block));
var_dump(spl_object_hash($this));
আমি বলছি "উপস্থিত হতে" কারণ আমি যদি নিয়ামক পদক্ষেপের পদ্ধতিতে ডেটা সেট করি তবে এটি phtml
টেমপ্লেটে পাওয়া যায় না - এবং যদি আমি spl_object_hash
উপরের ফলাফলগুলির সাথে তুলনা করি তবে আমি তিনটি পৃথক হ্যাশ পেয়েছি। তবে আমি এই সমস্ত কিছুর জন্য যথেষ্ট নতুন যে উপরেরটি আমার করা অন্য কোনও ত্রুটি হতে পারে - সুতরাং আপনি যদি ব্লকগুলিতে ডেটা সেট করতে এবং এটি কোনও টেমপ্লেটে আনতে সক্ষম হন তবে আমি এটি সম্পর্কে শুনতে পছন্দ করব !