- 2
- 0
- 约3.39千字
- 约 16页
- 2017-09-10 发布于北京
- 举报
会话处理(ZendSession)
第15章 会话处理(Zend_Session) 在计算机语言中,会话是一种面向连接的可靠通信方式。而会话处理机制,即是指编程语言实现基于会话的通信的方式。在PHP中,会话(session)代表服务器端与客户端之间的一种持久的状态数据。使用Zend Framework的Session可以在由相同客户端发起的多个页面请求之间,管理和保护会话数据。本章介绍如何使用Zend_Session组件来实现会话的处理。 15.1 Zend_Session会话简介 在Zend_Session中的会话数据是对Cookie数据的扩展。但该数据又与Cookie数据有所不同。二者最明显的区别就是会话数据不储存在客户端,而Cookie则通常保存在客户端。会话数据仅在服务器端源代码使用时,才通过回应客户端的请求与客户端共享会话数据。 在Zend_Session组件中,“session data”代表存储在服务器端的$_SESSION数组中的数据。该数据使用Zend_Session来管理,由会话命名空间(Zend_Session_Namespace,该类为Zend_Session的一个子类)以对象的方式来控制。命名空间逻辑上就是一系列以字符串为键名的联合数组,这类似于普通的PHP数组。 15.2 Zend_Session基本用法 上一节对Zend_Session做了一个纯理论性的简介。本节将以具体的实例来讲解Zend_Session的基本用法。其中包括如何使用Zend_Session实现会话、如何对会话命名空间进行迭代以及如何对会话命名空间进行访问。 15.2.1 使用Zend_Session 本小节来介绍如何使用Zend_Session实现会话。要使用Zend_Session会话,应该需要以下几个步骤。 (1)引用命名空间(Zend_Session_Namespace)类。 (2)为命名空间类实例化一个对象。可以使用new关键字为类实例化对象,其中要使用参数命名空间。如果不指定参数,则类的构造函数会使用默认的命名空间参数,其值为Default。 (3)使用Zend_Session_Namespace类的实例的成员,可以对其进行赋值或者读取操作。 15.2.2 遍历会话命名空间 会话命名空间Zend_Session_Namespace支持foreach语句(通过循环遍历所有成员的PHP语句)。基于这一点,可以使用foreach语句对会话命名空间进行迭代,以遍历会话命名空间中的全部值。 15.2.3 访问会话命名空间 访问会话命名空间可以使用通常对于一般变量的方法,如直接为变量赋值、直接读取变量的值、使用isset()函数判断其是否为Null值、使用unset()来注销变量等。 15.3 Zend_Session高级用法 上一节介绍的是Zend_Session在会话处理方面的基本应用。本节继续介绍该组件的高级应用。其内容包括开启会话、锁定会话命名空间、会话过期、会话封装与控制器以及防止一个会话命名空间的多重实例等部分。本节就以上列出的这些内容逐一地作详细介绍。 15.3.1 开启会话 如果程序需要所有的请求都通过会话的形式来管理,那么则需要在程序最开始时就开启会话。要开启会话,可以使用Zend_Session的静态方法start()。该方法是Zend_Session类的静态方法,可以直接以Zend_Session::start()的方式使用,另外该方法也不需要任何参数。使用Zend_Session有两种正确的开启会话的方法。 1.使用Zend_Session::start()开启会话。 2.在需要会话的地方使用new Zend_Session_Namespace()。 15.3.2 锁定会话命名空间 为会话命名空间实例初始化对象并赋值之后,有时为了特定的需要,会锁定会话命名空间,以防止其他内容对其值进行更改。使用Zend_Session_Namespace的lock()方法可以锁定会话命名空间(即将其值改为只读状态);使用Zend_Session_Namespace的unLock()方法可以解除会话命名空间实例的锁定状态。 另外还可以通过Zend_Session_Namespace的isLocked()方法判断指定会话命名空间是否处于锁定状态。该方法将根据其状态返回相应的布尔值。 15.3.3 为会话设置生命期 每个会话都有其生命期,默认的会话在关闭页面时结束生命期。而通过Zend_Session_Namespace的setExpirationSeconds()方法与setExpirationHops()方法为每个会话设置生命期。两个方法的使用语法格式分别如下所示。 setExpirationSeconds($seconds,$variab
您可能关注的文档
- 九年级数学下册3.5直线和圆的位置关系-切线及切线性质定理课件北师大版.ppt
- 九年级第一单元第3课第一框人民当家做主的法治国家课件(共34张).ppt
- 争做雷锋小标兵新版.ppt
- 习题解题指导部分.ppt
- 事业单位财务规则讲解.ppt
- 二元关系等价关系.ppt
- 为每个学生奠定最.ppt
- 五四书香主题队会.ppt
- 五年级上册P34媒体播放器(教案).ppt
- 互联网产品经理和软件行业产品经理的区别.pptx
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 保障农民工工资支付协调机制和工资预防机制.docx VIP
- (35页PPT)腾讯iOA零信任安全解决方案.pptx
- 供应链管理第章.ppt VIP
- 有机化学醇酚醚.ppt VIP
- 【真题】2025年湖北省公务员考试《申论》试题及答案解析(县乡卷).pdf VIP
- 《2025年人工智能在制造业应用》.docx VIP
- 2018年浙江省杭州市中考科学试卷含答案.docx VIP
- 东北地区自然地理概况课件市公开课一等奖省赛课微课金奖课件.pptx VIP
- Power Up3课后单元测试 - U7 - Unit Test.docx VIP
- EN755-2铝及铝合金挤压杆材,管材及型材 第2部分:机械性能.doc
原创力文档

文档评论(0)