[转]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); }