Існує перелік моделей дизайну, які використовуються в Magento в режимі Stack Overflow
Зі статті:
Очевидними є:
Завод:
$product = Mage::getModel('catalog/product');
Singleton:
$category = Mage::getSingleton('catalog/session');
Реєстр:
$currentCategory = Mage::registry('current_category');
Переглянути помічника:
Mage::helper('core');
Прототип:
Mage:getModel('catalog/product')->getTypeInstance();
Об'єктний пул:
$id = Mage::objects()->save($object);
$object = Mage::objects($id);
Ітератор:
Mage::getModel('catalog/product')->getCollection();
Подія / слухачі:
Mage::dispatchEvent('model_load_before', $params);
EDIT
Активний запис
$product->save()
$product->getName()
Нульовий об’єкт
$collection->getFirstItem()
Ледаче завантаження - колекції завантажуються під час ітерації
У блозі Ryan Street також є 5 статей про MVC, передній контролер, фабрику, синглтон та реєстр у Магенто
Редагувати
Можу додати, що "синглтон" Magento - це більше псевдо-синглтон. Це комбінація "Фабрика", тому що Mage :: getSingleton () - це завод і "Реєстр", оскільки всередині getSingleton()
методу це називається
self::register($registryKey, self::getModel($modelClass, $arguments))