質問

次のような、Magentoのコアで使用されている非常に明白なパターンがいくつかあります。

  • シングルトン
  • レジストリ
  • イベント/オブザーバー
  • 工場
  • モデル/ビュー/コントローラー

しかし、Magentoで使用されているかもしれない他の人がいますが、俳優、装飾者、戦略パターンなど、私は気づいていません。

Magentoのすべてのパターンタイプの使用法の参照リストは、Magentoの組み込み機能を不必要に複製しないサードパーティモジュールに実装する方法はありますか?

役に立ちましたか?

解決

Stack Overflowで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);

Iterator:

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

イベント/リスナー:

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

編集

アクティブレコード

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

nullオブジェクト

$collection->getFirstItem()

怠zyなロード - コレクションは反復時にロードされます

もあります ライアンストリートブログに関する5つの記事 MVC、フロントコントローラー、工場、シングルトン、およびマゼントのレジストリについて

編集
Magento 'Singleton」はより擬似シングルトンであると付け加えるかもしれません。 Mage :: Getsingleton()は工場であり「レジストリ」であるため、「工場」の組み合わせです getSingleton() これは呼び出されます

self::register($registryKey, self::getModel($modelClass, $arguments))
ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top