Gang Gang của Bốn mẫu thiết kế trong Magento Core


10

Có một vài mẫu rất rõ ràng được sử dụng trong lõi của Magento, chẳng hạn như:

  • Người độc thân
  • Đăng ký
  • Sự kiện / Người quan sát
  • Nhà máy
  • Bộ điều khiển xem mô hình

Nhưng có những thứ khác có thể được sử dụng trong Magento mà tôi không biết như các mẫu Diễn viên, Trang trí, Chiến lược.

Có một danh sách tham khảo về việc sử dụng tất cả các loại mẫu trong Magento hoặc cách triển khai trong các mô-đun của bên thứ ba mà không cần sao chép chức năng tích hợp sẵn của Magento không?


1
Câu trả lời ngắn gọn: không. Nhưng bạn đã quên MVC :-)
Fabian Blechschmidt

2
Trên thực tế, có một danh sách các mẫu thiết kế trên Stack Overflow (có liên kết trong dấu trang của tôi :)) - stackoverflow.com/questions/5041473/magento-design-potypes
Sergei Guk

Upvote chỉ vì liên kết đó trở lại SO.
Ben Lessani - Sonassi

Ồ Đó chính xác là những gì tôi đang tìm kiếm. Xin vui lòng gửi như một câu trả lời!
philwinkle

Câu trả lời:


12

Có một danh sách các mẫu thiết kế được sử dụng trong Magento trên Stack Overflow

Từ bài viết:

Những điều hiển nhiên là:

Nhà máy:

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

Người độc thân:

$category = Mage::getSingleton('catalog/session');

Đăng ký:

$currentCategory = Mage::registry('current_category');

Xem người trợ giúp:

Mage::helper('core');

Nguyên mẫu:

Mage:getModel('catalog/product')->getTypeInstance();

Nhóm đối tượng:

$id = Mage::objects()->save($object);
$object = Mage::objects($id);

Lặp lại:

Mage::getModel('catalog/product')->getCollection();

Sự kiện / Người nghe:

Mage::dispatchEvent('model_load_before', $params);

BIÊN TẬP

Hồ sơ hoạt động

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

Đối tượng rỗng

$collection->getFirstItem()

Tải chậm - bộ sưu tập được tải khi lặp

Ngoài ra còn có 5 bài viết trên blog của Ryan Street về MVC, Front Controller, Factory, Singleton và Registry trong Magento

Chỉnh sửa
Tôi có thể thêm rằng Magento 'singleton' là giả đơn hơn. Đó là sự kết hợp của 'Factory' vì Mage :: getSingleton () là một nhà máy và 'Registry' vì bên trong getSingleton()phương thức này được gọi là

self::register($registryKey, self::getModel($modelClass, $arguments))

2
Tôi có thể thêm 'Bản ghi hoạt động' ( $product->save(),, $product->getName()...), 'Đối tượng không' ( $collection->getFirstItem()), 'Bộ điều khiển phía trước', 'Tải
Marius

@Marius cứ thoải mái chỉnh sửa câu trả lời.
philwinkle
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.