getsingletonとgetmodelの例と完全に相違しています。
メイジ:: getSingleton()
メイジ:: getSingleton()は、同じクラスのインスタンスがメモリに存在するかどうまずチェックします。インスタンスが存在する場合、メモリから同じオブジェクトを返します。したがって、Mage :: getSingleton()はMage :: getModel()より高速です。
例
$product1 = Mage::getSingleton('catalog/product');
$product2 = Mage::getSingleton('catalog/product');
$の製品1と$ product2は、OSの同じメモリを共有し、唯一のインスタンスごとに戻ります両方。
メイジ:: getModel()
メイジ:: getModel()オブジェクトの新しいインスタンスにも、このようなオブジェクトは、構成内に存在するたびに作成されます。
例
$product1 = Mage::getModel('catalog/product');
$product2 = Mage::getModel('catalog/product');
$の製品1と$ product2は両方とも同じオブジェクトの異なる瞬間を有し、また
メイジ異なるメモリを占有:: getResourceModel()私の知る限りでは
Magentoのすべてのコレクションはリソース・モデルです。彼らは、それはあなたが使用して機能している本当に問題ではない
Mage::getResourceModel()
または
Mage::getModel()->getCollection()
によってインスタンス化されます。後者は単に最初のものを呼び出します。 Magentoチームは単にコレクションにリソースの一部を加えることを選択しました。おそらく、コレクションはデータベースに多くのクエリを実行する必要があるからです。通常、コレクション以外にはMage::getResourceModel()
に電話する必要はありません。また
balajimca
出典
2014-01-16 05:29:49
Sam
神が祝福し、製品を取り出すの getResourceModel方法この説明のためにあなたの魂。 – ahnbizcad