首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Magento-何时使用Mage::getResourceModel和Mage::getModel

Magento-何时使用Mage::getResourceModel和Mage::getModel
EN

Stack Overflow用户
提问于 2014-01-16 13:26:06
回答 2查看 22.5K关注 0票数 28

我刚开始使用Magento,特别是关于模型和ORM的工作原理。

我已经使用了这三种方法

代码语言:javascript
复制
Mage::getResourceModel()
Mage::getModel()
Mage::getSingleton()

谁能告诉我它们之间的区别是什么?

我发现getSingleton()共享内存,而getModel()为加载的同一个表的新对象使用新内存。

我已经使用了上面所有的方法,但无法区分它们以及什么时候适合使用哪种方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-16 13:29:49

对于getsingleton和getmodel.,与示例完全不同

Mage::getSingleton()

getSingleton()将首先检查内存中是否存在相同的类实例。如果实例存在,那么它将从内存中返回相同的对象。所以Mage::getSingleton()比Mage::getModel()快。

示例

代码语言:javascript
复制
$product1 = Mage::getSingleton('catalog/product');
$product2 = Mage::getSingleton('catalog/product');

$product1和$product2将共享相同的操作系统内存,并且每次只返回一个实例。

Mage::getModel()

getModel()每次都会创建一个对象的新实例,即使这样的对象存在于配置中。

示例

代码语言:javascript
复制
$product1 = Mage::getModel('catalog/product');
$product2 = Mage::getModel('catalog/product');

$product1和$product2都具有相同对象的不同实例,并且占用不同的内存

Mage::getResourceModel()

据我所知,Magento中的所有集合都是资源模型。它们实例化为

代码语言:javascript
复制
Mage::getResourceModel() 

代码语言:javascript
复制
Mage::getModel()->getCollection()

使用哪个函数并不重要;后一个函数只是调用第一个函数。Magento团队简单地选择将集合作为资源的一部分,可能是因为集合需要大量查询数据库。通常,除了集合之外,您不需要调用Mage::getResourceModel()

balajimca的好帖子

票数 47
EN

Stack Overflow用户

发布于 2016-02-25 09:36:22

此外,如果你知道你需要什么属性,那么使用带有过滤器的Mage::getResourceModel在速度和内存上都比通过Mage::getModel('catalog/product')加载快5倍。

例如,从数据库中检索产品的getResourceModel方法

代码语言:javascript
复制
$collection = Mage::getResourceModel('catalog/product_collection')
    ->addFieldToFilter('entity_id', array($productId))
    ->addAttributeToSelect(array('name'))
    ->setPageSize(1);
$product = $collection->getFirstItem();

加载模型(这将加载所有eav属性)

代码语言:javascript
复制
Mage::getModel('catalog/product')->load($productId);

更多信息请点击此处http://alanstorm.com/magento_advanced_orm_entity_attribute_value_part_1

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21153973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档