与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