Вопрос

Есть несколько очень очевидных моделей, используемых в ядре Magento, например:

  • Синглтон
  • Реестр
  • Событие/наблюдатель
  • Фабрика
  • Модель/просмотр/контроллер

Но есть и другие, которые могут использоваться в Magento, о которых я не знаю, таких как актер, декоратор, стратегические узоры.

Существует ли ссылочный список использования всех типов шаблонов в Magento или как реализовать в сторонних модулях, которые не излишне повторяют встроенные функции Magento?

Это было полезно?

Решение

Существует список шаблонов дизайна, которые используются в Magento на переполнении стека

Из статьи:

Очевидные:

Фабрика:

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

Синглтон:

$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);

РЕДАКТИРОВАТЬ

Активная запись

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

Нулевой объект

$collection->getFirstItem()

Ленивая загрузка - Коллекции загружаются при итерации

Это также 5 статей о блоге на Райан -стрит О MVC, переднем контроллере, заводе, синглтоне и реестре в Magento

Редактировать
Я мог бы добавить, что Magento 'Singleton'-скорее псевдо-синглтон. Это комбинация «фабрики», потому что Mage :: getsingleton () - это фабрика и «реестр», потому что внутри getSingleton() метод, который называется

self::register($registryKey, self::getModel($modelClass, $arguments))
Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top