有关ecmall的东东3----登录用户信息$this->visitor->get("user_id")的实现

在ecpp.base.php中定义了一个BaseVisitor extends Object 类,它对session中的当前登录的用户信息进行判断与初使化,我们先看看它的构造器:

function BaseVisitor()
    {
        if ($_SESSION[$this->_info_key]['user_id'])
        {
            $this->info         = $_SESSION[$this->_info_key];
            $this->has_login    = true;
        }
        else
        {
            $this->info         = array(
                'user_id'   => 0,
                'user_name' => Lang::get('guest')
            );
            $this->has_login    = false;
        }
    }

 

它在构造器中就对$_SESSION中进行_info_key的判断,判断是否存在,存在则用户已经登录,不存在,则用户还没有登录
 而这里的_info_key,则是在它的子类:UserVisitor extends BaseVisitor中进行附值的:

class UserVisitor extends BaseVisitor
{
    var $_info_key = 'user_info';
}

 

这个子类,在FrontendApp extends ECBaseApp类中的:

function _init_visitor()
    {
        $this->visitor =& env('visitor', new UserVisitor());
    }

 

中对visitor进行初使化的。因此这就可以让我们在FrontendApp的子类中使用$this->visitor->get("user_id")就可以获取当前登录用户的信息,而根据ecmall的继承图中我们可以知道,基本在所有的实体对象操作类中都可以使用它对当前登录用户进行访问!而在BaseVisitor类中,集合了更多的函数可以对用户是否登录,获取当前用户信息等内容进行操作。
 而对于系统后台的用户操作,与前台是一样的,只不过后台是:admin/app/backend.base.php中的BackendApp类

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值