“Banda dei Quattro” Design Patterns in Magento Nucleo
-
16-10-2019 - |
Domanda
Ci sono alcuni modelli molto evidenti in uso nel nucleo di Magento, come ad esempio:
- Singleton
- Registro
- Evento / Observer
- Fabbrica
- Modello / Vista / controller
Ma ci sono altri che possono essere in uso in Magento che io non sono a conoscenza di come Attore, modelli Decorator, di strategia.
Esiste un elenco di riferimento di utilizzo di tutti i tipi di modello di Magento o come implementare in moduli di terze parti che non inutilmente replicare funzionalità incorporata di Magento?
Soluzione
c'è una lista di modelli di progettazione che vengono utilizzati in Magento su Stack Overflow
Dall'articolo:
I più evidenti sono:
di fabbrica:
$product = Mage::getModel('catalog/product');
Singleton:
$category = Mage::getSingleton('catalog/session');
del Registro di sistema:
$currentCategory = Mage::registry('current_category');
View Helper:
Mage::helper('core');
Prototipo:
Mage:getModel('catalog/product')->getTypeInstance();
Oggetto Piscina:
$id = Mage::objects()->save($object); $object = Mage::objects($id);
Iterator:
Mage::getModel('catalog/product')->getCollection();
Evento / ascoltatori:
Mage::dispatchEvent('model_load_before', $params);
Modifica
record attivo
$product->save() $product->getName()
oggetto Nullo
$collection->getFirstItem()
Pigro di carico - le collezioni vengono caricati quando iterata ??p>
Ci sono anche 5 articoli su Ryan via blog su MVC, fronte controller, fabbrica, Singleton e del Registro di sistema in Magento
Modifica
Potrei aggiungere che il Magento 'Singleton' è più una pseudo-Singleton. E 'una combinazione di 'fabbrica', perché Mage :: getSingleton () è una fabbrica e 'Registro', perché all'interno del metodo getSingleton()
questo si chiama
self::register($registryKey, self::getModel($modelClass, $arguments))