"গ্যাং অফ ফোর" ম্যাজেন্টো কোরে নকশার প্যাটার্নগুলি


10

ম্যাজেন্টোর কোরটিতে ব্যবহারের জন্য খুব কয়েকটি সুস্পষ্ট নিদর্শন রয়েছে যেমন:

  • একক বস্তু
  • রেজিস্ট্রি
  • ইভেন্ট / অবজারভার
  • কারখানা
  • মডেল / দেখুন / কন্ট্রোলার

তবে এমন আরও কিছু আছে যা ম্যাগেন্তোতে ব্যবহৃত হতে পারে যা আমি অভিনেতা, ডেকরেটর, কৌশল নিদর্শনগুলির মতো অবগত নই।

ম্যাজেন্টোতে সমস্ত প্যাটার্ন ধরণের ব্যবহারের একটি রেফারেন্স তালিকা রয়েছে বা তৃতীয় পক্ষের মডিউলগুলিতে কীভাবে প্রয়োগ করা যায় যা অযাচিতভাবে ম্যাজেন্টোর বিল্ট-ইন কার্যকারিতাটির অনুলিপি করে না?


1
সংক্ষিপ্ত উত্তর: না। তবে আপনি এমভিসি :-) ভুলে গেছেন
ফ্যাবিয়ান ব্লাচস্মিড্ট

2
প্রকৃতপক্ষে স্ট্যাক ওভারফ্লোতে নকশার নিদর্শনগুলির একটি তালিকা রয়েছে (আমার বুকমার্কগুলিতে লিঙ্কটি আছে :)) - স্ট্যাকওভারফ্লো
সের্গেই গুক

এই লিঙ্কটি কেবলমাত্র এসও-তে ফিরে আসুন Up
বেন লেসানী - সোনাসি

কি দারুন. আমি ঠিক তাই খুঁজছিলাম। একটি উত্তর হিসাবে পোস্ট করুন!
ফিলিঙ্কল

উত্তর:


12

নকশার ধরণগুলির একটি তালিকা রয়েছে যা স্টেইন ওভারফ্লোতে ম্যাজেন্টোতে ব্যবহৃত হয়

নিবন্ধ থেকে:

স্পষ্টত হ'ল:

কারখানার:

$product = Mage::getModel('catalog/product');

একক:

$category = Mage::getSingleton('catalog/session');

রেজিস্ট্রি:

$currentCategory = Mage::registry('current_category');

সহায়ক দেখুন:

Mage::helper('core');

প্রোটোটাইপ:

Mage:getModel('catalog/product')->getTypeInstance();

অবজেক্ট পুল:

$id = Mage::objects()->save($object);
$object = Mage::objects($id);

iterator:

Mage::getModel('catalog/product')->getCollection();

ইভেন্ট / শ্রোতাদের:

Mage::dispatchEvent('model_load_before', $params);

সম্পাদনা

সক্রিয় রেকর্ড

$product->save()
$product->getName()

নাল বস্তু

$collection->getFirstItem()

অলস লোডিং - পুনরাবৃত্ত হলে সংগ্রহগুলি লোড হয়

এছাড়াও রয়েছে রায়ান স্ট্রিটের 5 টি পোষ্ট লিখেছেন ব্লগ Magento মধ্যে MVC, ফ্রন্ট কন্ট্রোলার, কারখানা, একক এবং রেজিস্ট্রি সম্পর্কে

সম্পাদনা
আমি যুক্ত করতে পারি যে ম্যাজেন্টো 'সিঙ্গেলটন' আরও ছদ্ম-সিঙ্গলটন। এটি 'ফ্যাক্টরি' এর সংমিশ্রণ কারণ ম্যাজ :: গেটসিংটন () একটি কারখানা এবং 'রেজিস্ট্রি' কারণ getSingleton()পদ্ধতির অভ্যন্তরে এটিকে বলা হয়

self::register($registryKey, self::getModel($modelClass, $arguments))

2
আমি 'অ্যাক্টিভ রেকর্ড' ( $product->save(),, $product->getName()...), 'নুল অবজেক্ট' ( $collection->getFirstItem()), 'ফ্রন্ট কন্ট্রোলার', 'অলস লোডিং' (পুনরাবৃত্তির সময় সংগ্রহগুলি লোড করা হয়) যুক্ত করতে পারি
মারিয়াস

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