มีรายการรูปแบบการออกแบบที่ใช้ใน Magento บน Stack Overflow
จากบทความ:
สิ่งที่ชัดเจนคือ:
โรงงาน:
$product = Mage::getModel('catalog/product');
ซิงเกิล:
$category = Mage::getSingleton('catalog/session');
Registry:
$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()
วัตถุ Null
$collection->getFirstItem()
การโหลดขี้เกียจ - คอลเลกชันจะถูกโหลดเมื่อมีการวนซ้ำ
นอกจากนี้ยังมี5 บทความในบล็อก Ryan Streetเกี่ยวกับ MVC, Front Controller, Factory, Singleton และ Registry ใน Magento
แก้ไข
ฉันอาจเพิ่มว่า Magento 'ซิงเกิลตัน' เป็นแบบหลอกเดี่ยว เป็นการรวมกันของ 'โรงงาน' เพราะ Mage :: getSingleton () เป็นโรงงานและ 'Registry' เพราะในgetSingleton()
วิธีการนี้เรียกว่า
self::register($registryKey, self::getModel($modelClass, $arguments))