gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 15:37:30 26 4
gpt4 key购买 nike

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

这三种方法我都用过

Mage::getResourceModel()
Mage::getModel()
Mage::getSingleton()

谁能告诉我他们每个人之间有什么区别?

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

我已经使用了上述所有方法,但无法区分它们以及何时适合使用哪一种。

最佳答案

与getsingleton 和getmodel 的示例完美区别。

法师::getSingleton()

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

例子

$product1 = Mage::getSingleton('catalog/product');
$product2 = Mage::getSingleton('catalog/product');

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

法师::getModel()

Mage::getModel() 将创建一个对象的新实例,即使这样的对象存在于配置中。

例子
$product1 = Mage::getModel('catalog/product');
$product2 = Mage::getModel('catalog/product');

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

法师::getResourceModel()

据我所知,Magento 中的所有集合都是资源模型。它们被实例化
Mage::getResourceModel() 

或者
Mage::getModel()->getCollection()

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

巴拉吉姆卡的好帖子

关于Magento-何时使用 Mage::getResourceModel 和 Mage::getModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21153973/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com