Mage::getSingleton 函数详解

getSingleton 最终也是返回一个Mage_Core_Model_Abstract子类对象,但其和getModel函数最大的区别是 永远只生成一个对象

并将生成的对象通过Mage::registry函数注册到magento系统当中,再次执行getSingleton时获取到上一 次生成的对象。
我们通过以下的系统源代码可以清楚的看到其和getModel函数的区别。

Php代码  收藏代码
    1. /** 
    2. * Retrieve model object singleton 
    3. * 
    4. * @param   string $modelClass 
    5. * @param   array $arguments 
    6. * @return  Mage_Core_Model_Abstract 
    7. */  
    8. public static function getSingleton($modelClass=''array $arguments=array())  
    9. {  
    10. $registryKey = '_singleton/'.$modelClass;  
    11. if (!self::registry($registryKey)) {  
    12. self::register($registryKey, self::getModel($modelClass$arguments));  
    13. }  
    14. return self::registry($registryKey);  
    15. }  
posted @ 2014-03-20 17:44  lifeinearth  阅读(930)  评论(0编辑  收藏  举报