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

 

posted @ 2021-03-10 14:59  ec04  阅读(95)  评论(0编辑  收藏  举报