/** * get singleton instance * @param sfUser $sfUser * @return tpyCart */ public static function getInstance(sfUser $sfUser) { if (is_null(self::$_instance)) { if ($sfUser->isAuthenticated()) { self::$_instance = tpyUserCartTable::getInstance()->findOneBySfGuardUserId($sfUser->getGuardUser()->getId()); if (false == self::$_instance) { self::$_instance = new tpyUserCart(); self::$_instance->setSfGuardUserId($sfUser->getGuardUser()->getId()); } } else { self::$_instance = new tpyCart(); self::$_instance->_user = $sfUser; self::$_instance->_items = $sfUser->getAttribute('cart_items', array(), tpyCart::SESSION_NS); } } return self::$_instance; }