Magento中Mage::getSingleton函数

getSingleton最终也是返回一个Mage_Core_Model_Abstract子类对象,但是其和getModel函数最大的区别是 永远只生成一个对象,并将生成的对象通过Mage::registry函数注册到magento系统当中,再次执行getSingleton时获取到上一 次生成的对象。 我们通过以下的系统源代码可以清楚的看到其和getModel函数的区别。

/** 
 * Retrieve model object singleton 
 * @param   string $modelClass 
 * @param   array $arguments 
 * @return  Mage_Core_Model_Abstract 
 */  
public static function getSingleton($modelClass='', array $arguments=array())  
{  
    $registryKey = '_singleton/'.$modelClass;  
    if (!self::registry($registryKey)) {  
        self::register($registryKey, self::getModel($modelClass, $arguments));  
    }  
    return self::registry($registryKey);  
}

你可能感兴趣的:(magento,getSinglet,magento常用函数方法)