마 젠토 코어의 "4 가지 갱"디자인 패턴


10

Magento의 핵심에서 사용되는 몇 가지 명백한 패턴이 있습니다.

  • 하나씩 일어나는 것
  • 기재
  • 이벤트 / 관찰자
  • 공장
  • 모델 /보기 / 컨트롤러

그러나 배우, 데코레이터, 전략 패턴과 같이 내가 알지 못하는 마 젠토에서 사용할 수있는 다른 것들이 있습니다.

Magento의 모든 패턴 유형 사용에 대한 참조 목록이 있거나 Magento의 내장 기능을 불필요하게 복제하지 않는 타사 모듈에서 구현하는 방법이 있습니까?


1
짧은 대답 : 아닙니다. 하지만 당신은 MVC :-) 잊고
파비안 Blechschmidt

2
사실이 스택 오버플로 (:) 내 즐겨 찾기에 링크가)에 디자인 패턴의 목록입니다 - stackoverflow.com/questions/5041473/magento-design-patterns
세르게이 국

SO 로의 링크 때문에 공감하십시오.
Ben Lessani-Sonassi

와. 즉이었다 정확히 내가 무엇을 찾고 있었다. 답변으로 게시하십시오!
philwinkle

답변:


12

스택 오버플로에서 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()

지연로드 -반복 될 때 콜렉션이로드됩니다.

Ryan Street 블로그 에는 Magento의 MVC, Front Controller, Factory, Singleton 및 Registry에 관한 5 개의 기사 도 있습니다.

편집
Magento 'singleton'이 더 의사-싱글 톤임을 추가 할 수 있습니다. 내부에 있기 때문에 마법사 :: getSingleton ()가 공장 '레지스트리'이기 때문 '공장'의 조합의 getSingleton()방법이라고

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

2
'Active record'( $product->save(),, $product->getName()...), 'Null object'( $collection->getFirstItem()), 'Front controller', 'Lazy loading'(반복 될 때 모음이로드 됨)을 추가 할 수 있습니다.
Marius

@ 마리우스는 답을 자유롭게 편집하십시오.
philwinkle
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.