অন্য ম্যাজেন্টো 2 এ একটি মন্তব্য বন্ধ করে দেওয়া
আপনার যদি কিছু গণনা করা মান ভাগ করে নেওয়া দরকার হয় তবে গণনা আচরণটি পৃথক অবজেক্টে রাখুন এবং সেই মানটিকে যে ব্লকগুলির প্রয়োজন সেগুলি থেকে কল করুন। রেজিস্ট্রি নিরুৎসাহিত করা হয়েছে কারণ এটি বিশ্বব্যাপী পরিবর্তনীয় রাষ্ট্র এবং আপনি সেখান থেকে কী পাবেন তা আপনি কখনই নিশ্চিত নন।
অপরিবর্তনীয় অবস্থার সাথে ম্যাজেন্টো 2 এ কোনও অবজেক্ট তৈরি করার কোনও উপায় আছে কি? রেজিস্ট্রি ( Magento\Framework\Registry
) ব্যবহার করা নিরুৎসাহিত করা হয়েছে কারণ এটি বিশ্বব্যাপী পরিবর্তনীয় রাষ্ট্র (অনুমিতযোগ্য কারণ, যদিও register
পদ্ধতিটি আপনাকে একটি বিদ্যমান কী পরিবর্তন করতে দেয় না, আপনি আনসেট করে আবার সেই কীটি পুনরায় সেট করতে পারেন )।
যাইহোক - Magento 2 এ যে কোনও অবজেক্টের জন্য একই সমস্যা বিদ্যমান an
namespace Pulsestorm\Helloworld\Model;
use Magento\Framework\DataObject;
class ViewVars extends DataObject
{
}
তারপরে স্বয়ংক্রিয় কনস্ট্রাক্টর নির্ভরতা ইনজেকশনটি নিশ্চিত করে যে যে কেউ এই ভাগ করা বস্তুকে দখল করতে পারে। যদি অবজেক্টটি ভাগ করা যায় না, তবে ভিউ / ব্লক এটি ধরতে পারে না।
তত্ত্বগতভাবে, আমরা এর মতো কিছু করতে পারি
namespace Pulsestorm\Helloworld\Model;
class ViewVars
{
protected $_data=false;
protected function setData($data)
{
if($_data)
{
throw new Exception("Immutable");
}
$this->_data = $data;
}
public function getData()
{
return $this->_data;
}
}
কিন্তু যে একটি দৃশ্যের জন্য পৃথক ভেরিয়েবলের মান স্থাপনার সাধারণ হিসাবে একটি কাজের জন্য অনেক কাজ মত মনে হয় । অপরিবর্তনীয় ডেটা অবজেক্টগুলি সম্পর্কে আমি অবগত নই যা তৈরি করার জন্য কি ম্যাজেন্টো 2 এর থেকে আরও ভাল উপায় আছে?