Magento Çekirdeğinde “Dörtlü Çete” Tasarım Desenleri


10

Magento'nun çekirdeğinde kullanımda olan çok açık birkaç desen vardır, örneğin:

  • Singleton
  • Kayıt
  • Olay / The Observer
  • Fabrika
  • Model / Görünüm / Denetleyici

Ancak Magento'da aktör, dekoratör, strateji kalıpları gibi farkında olmadığım başkaları da olabilir.

Magento'daki tüm desen türlerinin kullanımının veya Magento'nun yerleşik işlevselliğini gereksiz yere tekrarlamayan üçüncü taraf modüllerine nasıl uygulanacağına dair bir referans listesi var mı?


1
Kısa cevap: hayır. Ama
MVC'yi

2
Aslında Stack Overflow'da tasarım desenlerinin bir listesi var (yer işaretlerimde bağlantı var :)) - stackoverflow.com/questions/5041473/magento-design-patterns
Sergei Guk 13:13

Sadece SO ile geri bağlantı nedeniyle oy verin.
Ben Lessani - Sonassi

Vay. Tam da aradığım şey buydu . Lütfen cevap olarak gönderin!
philwinkle

Yanıtlar:


12

Magento'da Stack Overflow'da kullanılan tasarım desenlerinin bir listesi var

Makaleden:

Açık olanlar:

Fabrika:

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

Singleton:

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

Kayıt:

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

Yardımcıyı Görüntüle:

Mage::helper('core');

Prototip:

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

Nesne Havuzu:

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

yineleyici:

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

Olay / Dinleyiciler:

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

DÜZENLE

Aktif kayıt

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

Boş nesne

$collection->getFirstItem()

Tembel yükleme - koleksiyonlar yinelendiğinde yüklenir

Ayrıca Ryan Street blogunda MVC, Front Controller, Factory, Singleton ve Registry hakkında Magento'da 5 makale bulunmaktadır.

Düzenle
Magento 'singleton' daha sahte-singleton olduğunu ekleyebilirsiniz. Bu bir 'Fabrika' birleşimidir çünkü Mage :: getSingleton () bir fabrika ve 'Kayıt Defteri'dir çünkü getSingleton()yöntem içinde buna denir

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

2
'Etkin kayıt' ( $product->save(),, $product->getName()...), 'Boş nesne' ( $collection->getFirstItem()), 'Ön denetleyici', `` Tembel yükleme '' (koleksiyonlar yinelendiğinde yüklenir) ekleyebilirim
Marius

@Marius cevap düzenlemek için çekinmeyin.
philwinkle
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.