ecmall 框架系统分析(三)

简介:

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

Php代码 

  1. function BaseVisitor()

  2. {

  3. if ($_SESSION[$this->_info_key][‘user_id’])

  4. {

  5. $this->info         = $_SESSION[$this->_info_key];

  6. $this->has_login    = true;

  7. }

  8. else

  9. {

  10. $this->info         = array(

  11. ‘user_id’ => 0,

  12. ‘user_name’ => Lang::get(‘guest’)

  13. );

  14. $this->has_login    = false;

  15. }

  16. }

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

Php代码 

  1. class UserVisitor extends BaseVisitor

  2. {

  3. var $_info_key = ‘user_info';

  4. }

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

Php代码 

  1. function _init_visitor()

  2. {

  3. $this->visitor =& env(‘visitor’, new UserVisitor());

  4. }

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



















本文转自ljianbing51CTO博客,原文链接: http://blog.51cto.com/ljianbing/1611252,如需转载请自行联系原作者




相关文章
|
数据建模 程序员 持续交付
系统分析师笔记-案例分析-软件开发方法
系统分析师笔记-案例分析-软件开发方法
|
7月前
|
Java 关系型数据库 MySQL
体育赛事管理系统的设计与实现(源码+论文)_kaic
体育赛事管理系统的设计与实现(源码+论文)_kaic
|
存储 算法 C语言
C/C++趣味程序设计百例(1~10)
C/C++趣味程序设计百例(1~10)
140 0
|
7月前
|
前端开发 数据库 开发工具
人力资源管理系统设计与实现(论文+源码)_kaic
人力资源管理系统设计与实现(论文+源码)_kaic
|
算法 测试技术 数据库
系统分析师笔记--面向对象方法学
系统分析师笔记--面向对象方法学
|
算法 C语言 C++
C/C++趣味程序设计百例(41~50)
C/C++趣味程序设计百例(41~50)
210 0
|
算法 C++ 容器
C/C++趣味程序设计百例(71~80)
C/C++趣味程序设计百例(71~80)
539 0
|
算法 C++
C/C++趣味程序设计百例(61~70)
C/C++趣味程序设计百例(61~70)
195 0
|
算法 C++
C/C++趣味程序设计百例(31~40)
C/C++趣味程序设计百例(31~40)
112 0
|
算法 定位技术 C语言
C/C++趣味程序设计百例(51~60)
C/C++趣味程序设计百例(51~60)
118 0