與getsingleton和getmodel的示例完美的區別。
法師:: getSingleton()
法師:: getSingleton()將首先檢查是否同一類的實例在存儲器存在與否。如果實例存在,那麼它將從內存中返回相同的對象。所以Mage :: getSingleton()比Mage :: getModel()更快。
例
$product1 = Mage::getSingleton('catalog/product');
$product2 = Mage::getSingleton('catalog/product');
$產品1和$產品2二者將共享操作系統的同一內存並返回每次只有一個實例。
法師:: getModel()
法師:: getModel()將創建一個對象每次甚至這樣的對象在配置存在的一個新實例。
例
$product1 = Mage::getModel('catalog/product');
$product2 = Mage::getModel('catalog/product');
$產品1和$產品2都具有相同對象的不同瞬間,也據我所知佔據不同的內存
法師:: getResourceModel()
,Magento中的所有集合都是資源模型。它們由
Mage::getResourceModel()
或
Mage::getModel()->getCollection()
它並不真正無論哪個功能,您使用的實例;後者簡單地稱爲第一個。 Magento團隊只是選擇將集合作爲資源的一部分,可能是因爲集合需要查詢數據庫。通常情況下,您無需致電Mage::getResourceModel()
查詢集合以外的任何內容。
好後由balajimca
來源
2014-01-16 05:29:49
Sam
神保佑你的靈魂爲這個解釋。 – ahnbizcad