2011-01-31 68 views
1

所以我写了一个功能,让我获得某个类别的父类别ID,并且想要获取Magento中父母之一的url_key。我想这样做,而不必加载类别,并找到这种方法getAttributeRawValue,可以在这里找到/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Abstract.php。基本上,似乎没有必要加载整个实体,然后获取与该实体ID关联的属性值。在不加载整个实体的情况下加载一个属性值

它给我我需要的东西,但我想知道是否加载类别和获取属性都好多了。加载类别本质上是做同样的事情,但为每个属性做?

+0

你可以发布完整的代码片段,以便我们可以看到呼叫的上下文吗? – 2011-02-01 02:27:19

+0

不会加载原始值以避免任何覆盖?首先是类别模型的`_afterLoad`方法,然后可能是一个自定义的getter。我甚至没有检查过相关的事件。您不知道这些行为可能会被第三方扩展改变。我相信正确的行动将是使用完整的模型方法,然后缓存你​​的结果。 – clockworkgeek 2011-02-01 11:19:46

回答

3

我的第一个想法是使用内置的Varien Profiler对其进行定量测试。这是一个非常有用的技巧未被充分利用。

基本上,您需要打开管理中的分析(系统>配置>高级>开发人员>调试>分析器),然后插入启动/停止说明,并在代码的任一侧插入一个唯一字符串。例如

Varien_Profiler::start('__CATEGORY_URL_KEY_RETURN__'); 
.... 
your code here 
.... 
Varien_Profiler::stop('__CATEGORY_URL_KEY_RETURN__'); 

在您的浏览器中加载页面,您将在底部看到Profiler输出。

享受!

相关问题