“Banda de los Cuatro” Patrones de Diseño en Magento Core
-
16-10-2019 - |
Pregunta
Existen algunos patrones muy evidentes en uso en el núcleo de Magento, como por ejemplo:
- Singleton
- Registro
- Evento / Observador
- Fábrica
- Modelo / Vista / Controlador
Pero hay otros que pueden estar en uso en Magento que no soy consciente de como el actor, patrones decorador, Estrategia.
¿Hay una lista de referencia de la utilización de todo tipo de patrón en Magento o cómo poner en práctica en los módulos de terceros que no innecesariamente replicar la funcionalidad integrada de Magento?
Solución
No es una lista de los patrones de diseño que se utiliza en Magento desbordamiento de pila
Desde el artículo:
Las más obvias son:
fábrica:
$product = Mage::getModel('catalog/product');
Singleton:
$category = Mage::getSingleton('catalog/session');
Registro:
$currentCategory = Mage::registry('current_category');
View Helper:
Mage::helper('core');
Prototipo:
Mage:getModel('catalog/product')->getTypeInstance();
Objeto piscina:
$id = Mage::objects()->save($object); $object = Mage::objects($id);
Iterador:
Mage::getModel('catalog/product')->getCollection();
Evento / oyentes:
Mage::dispatchEvent('model_load_before', $params);
Editar
registro activo
$product->save() $product->getName()
objeto nulo
$collection->getFirstItem()
Lazy carga - colecciones se cargan cuando iterada
Hay también 5 artículos en un blog Ryan Calle sobre MVC, controlador frontal, fábrica, Singleton y registro en Magento
Editar
Debo añadir que el Magento 'Singleton' es más un pseudo-Singleton. Es una combinación de 'fábrica' porque Mago :: getSingleton () es una fábrica y 'Registro', porque dentro del método getSingleton()
esto se llama
self::register($registryKey, self::getModel($modelClass, $arguments))