Entwurfsmuster der „Bande von vier“ im Magento -Kern
-
16-10-2019 - |
Frage
Es gibt einige sehr offensichtliche Muster im Kern von Magento, wie z. B.:
- Singleton
- Registrierung
- Ereignis/Beobachter
- Fabrik
- Model View Controller
Aber es gibt andere, die in Magento verwendet werden, die mir nicht bewusst sind, wie der Schauspieler, Dekorateur, Strategiemuster.
Gibt es eine Referenzliste über die Verwendung aller Mustertypen in Magento oder wie sie in Modulen Dritter implementiert werden, die die integrierte Funktionalität von Magento nicht unnötig replizieren?
Lösung
Es gibt eine Liste von Designmustern, die in Magento auf dem Stapelüberlauf verwendet werden
Aus dem Artikel:
Die offensichtlichen sind:
Fabrik:
$product = Mage::getModel('catalog/product');
Singleton:
$category = Mage::getSingleton('catalog/session');
Registrierung:
$currentCategory = Mage::registry('current_category');
Helfer anzeigen:
Mage::helper('core');
Prototyp:
Mage:getModel('catalog/product')->getTypeInstance();
Objektpool:
$id = Mage::objects()->save($object); $object = Mage::objects($id);
Iterator:
Mage::getModel('catalog/product')->getCollection();
Event/Hörer:
Mage::dispatchEvent('model_load_before', $params);
BEARBEITEN
Aktiver Rekord
$product->save() $product->getName()
NULL -Objekt
$collection->getFirstItem()
Faules Laden - Sammlungen werden beim Iterieren geladen
Es gibt auch 5 Artikel auf Ryan Street Blog Über MVC, Front Controller, Fabrik, Singleton und Registry in Magento
Bearbeiten
Ich könnte hinzufügen, dass der Magento 'Singleton' eher ein Pseudo-Singleton ist. Es ist eine Kombination aus "Fabrik", weil Mage :: Getsingleton () eine Fabrik und "Registrierung" ist getSingleton()
Methode, die genannt wird
self::register($registryKey, self::getModel($modelClass, $arguments))