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,如需转载请自行联系原作者




相关文章
|
传感器 数据采集 人工智能
数字孪生与智慧城市:构建未来城市模型
【10月更文挑战第31天】在信息化和智能化高速发展的今天,数字孪生技术正逐步成为推动智慧城市建设的核心力量。本文将深入探讨数字孪生技术在城市规划、管理、交通和环保等方面的应用,以及它如何助力构建未来城市的理想模型。数字孪生通过实时数据同步和双向交互,实现城市运行状态的全面监控、预测和优化,推动城市向更加智慧、绿色和可持续的方向发展。
|
机器学习/深度学习 人工智能 算法
《元宇宙沉浸式体验密码:AI与空间计算的光影交织》
在科技飞速发展的今天,元宇宙正深刻改变人类的生活与交互方式。空间计算技术整合了VR、AR、MR等手段,通过精准的空间感知与定位、三维重建,构建出逼真的虚拟场景框架。而人工智能则赋予这些场景智能和灵魂,通过智能场景分析、补帧与运动预测、动态光照及物理模拟,提升用户体验的沉浸感与真实感。两者协同进化,为元宇宙的真实感渲染提供全方位支持,开启数字化生活的新篇章。
239 1
|
SQL 存储 人工智能
化整为零:湖仓数据平台一站式迁移
本文介绍了湖仓平台迁移的概况、痛点及解决方案。首先概述了数据湖和数据仓库迁移的现状与背景,强调其重要性及挑战。接着分析了迁移过程中的主要痛点,如数据量大、业务变更频繁等。最后提出了一种化整为零的新范式,通过精细化设计和自动化工具提升迁移效率,并展示了一站式湖仓迁移中心的关键阶段和产品大图,旨在加速迁移过程并减少人工成本。
|
存储 监控 小程序
Java中的线程池优化实践####
本文深入探讨了Java中线程池的工作原理,分析了常见的线程池类型及其适用场景,并通过实际案例展示了如何根据应用需求进行线程池的优化配置。文章首先介绍了线程池的基本概念和核心参数,随后详细阐述了几种常见的线程池实现(如FixedThreadPool、CachedThreadPool、ScheduledThreadPool等)的特点及使用场景。接着,通过一个电商系统订单处理的实际案例,分析了线程池参数设置不当导致的性能问题,并提出了相应的优化策略。最终,总结了线程池优化的最佳实践,旨在帮助开发者更好地利用Java线程池提升应用性能和稳定性。 ####
|
搜索推荐 数据挖掘 BI
产品电子画册制作软件哪个好?排名前6的软件都在这里
简要评测Adobe InDesign、草料二维码、创客贴、样本云、云展网、名编辑6款常见的产品电子画册制作工具,让你在选择出更适合自己的工具
|
存储 数据挖掘
服务器数据恢复—ZFS文件系统下数据恢复案例
服务器存储数据恢复环境: ZFS Storage 7320存储阵列中有32块硬盘。32块硬盘分为4组,每组8块硬盘,共组建了3组RAIDZ,每组raid都配置了热备盘。 服务器存储故障: 服务器存储运行过程中突然崩溃,排除人为误操作、断电、进水和其他机房不稳定因素。管理员重启服务器存储,系统无法进入,需要恢复服务器存储中的数据。
|
存储 编解码 搜索推荐
如何在Windows和Mac上免费将蓝光转换为MKV?
蓝光光盘因能提供高质量的视频和音频内容而备受青睐,但其使用上的局限性却不容忽视。相比之下,MKV作为一种广受支持的视频格式,与大多数播放设备和平台都能完美兼容,为用户带来了更大的便利性和灵活性。
2398 0
|
小程序 开发者
微信小程序跳转微信小程序,使用微信开发者工具的测试记录
本文是博主学习微信小程序的记录,希望对大家有所帮助。
842 0
微信小程序跳转微信小程序,使用微信开发者工具的测试记录
|
中间件 数据库 开发框架
中间件概述
      中间件是基础软件,处于操作系统(或网络协议)与分布式应用之间,从而屏蔽操作系统(或网络协议)的差异,实现分布式异构系统之间的操作。目前,对于中间件还没有形成一个统一的定义,比较公认的IDC的定义是:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。
2708 74
|
存储 C++
408计算机组成原理学习笔记——计算机系统概述
408计算机组成原理学习笔记——计算机系统概述
907 1
408计算机组成原理学习笔记——计算机系统概述

热门文章

最新文章