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輸出。

享受!

相關問題