ThinkPHP6.0:Session和Cookie机制的变化

 

ThinkPHP6.0:Session和Cookie机制的变化

最新的6.0版本对框架的Session和Cookie机制进行了重新设计,摆脱了原有设计的束缚。

Session

新的Session机制不依赖PHP内置的Session会话机制,完全独立实现,优势在于可以兼容任何的运行环境,而且配置参数也大为简化。

立即学习“PHP免费学习笔记(深入)”;

新版你不能再使用$_SESSION或者任何php内置的session函数操作Session,必须通过thinkSession类或者thinkacadeSession静态代理类操作Session数据。

Session对于很多API接口应用来说,不是必须的,而随着前后端分离的应用架构设计越来越多,因此6.0的Session默认是关闭的,系统把Session相关的功能设计成一个独立的中间件,如果你需要使用Session可以单独在应用的中间件定义文件中开启。

默认安装后,在app目录下的middleware.php中间件定义文件中,对可能需要使用的系统中间件预置了注释,你可以直接取消注释,加上:

// Session初始化'thinkmiddlewareSessionInit',

该中间件的作用主要是初始化SessionId,并注入当前的请求对象。初始化的时候会自动读取config目录下的session.php配置。

默认使用文件的方式保存Session数据,支持使用redis、memcache以及memcached。

内置的Session驱动默认配置下,都是支持跨应用读取Session数据的。如果你需要区分不同的应用,保持各个应用的Session数据独立,可以在应用的session配置文件中设置prefix参数,例如:

灵机语音 灵机语音

灵机语音

灵机语音 56 查看详情 灵机语音

'prefix' => 'admin',

并且为了防止Session数据过多,文件方式写入Session数据的时候支持垃圾回收机制。可以配置gc_divisor和gc_maxlifetime两个参数来设置GC回收。

Session数据会在当前请求结束后,自动写入,一般只会写入一次。Session数据写入之前会首先进行序列化,默认的序列化方法是serialize/unserialize,你可以在session配置文件中设置serialize参数(数组)来改变默认的序列化机制,例如:

'serialize' => ['json_encode', 'json_decode'],

Session类本身的用法和之前版本基本一致,增加了push方法用于追加一个session数组。

Cookie

Cookie的存取机制是分开设计的,读取操作是通过$_COOKIE读取,写入则通过可扩展的方式满足不同运行环境的Cookie写入要求。Cookie数据的写入操作也是在当前请求发送响应数据之前统一写入。

但在实际使用中,Cookie的用法和之前类似,区别在于不再支持前缀配置和清空操作。

PHP中文网,大量的免费ThinkPHP入门教程,欢迎在线学习!

创想鸟学习专题:php session (包含图文、视频、案例)

本文转自:https://blog.thinkphp.cn/1077719

以上就是ThinkPHP6.0:Session和Cookie机制的变化的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/235984.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月3日 23:22:33
下一篇 2025年11月3日 23:23:23

相关推荐

  • MyBatis 中 XML 映射文件无法调用的问题排查与解决

    本文旨在帮助开发者解决在使用 Spring Boot 和 MyBatis 框架时,XML 映射文件中定义的 SQL 语句无法被正确调用的问题。文章将通过分析常见原因、提供解决方案以及代码示例,帮助读者快速定位并解决类似问题,确保 MyBatis 能够正确加载和执行 XML 映射文件中的 SQL 语句…

    2025年12月5日
    500
  • PHP内置函数有哪些_PHP常用内置函数功能一览

    PHP内置函数涵盖字符串、数组、文件、日期、数学等方面,如strlen、str_replace处理字符串,count、array_merge操作数组,file_get_contents读取文件,date格式化时间,rand生成随机数,isset判断变量设置,合理使用可提升开发效率。 PHP提供了大量…

    2025年12月5日
    000
  • edge浏览器占用CPU和内存过高怎么解决_edge浏览器CPU内存占用过高解决方法

    答案:Edge浏览器卡顿可因高资源占用导致,需通过管理标签页与扩展、禁用硬件加速、清除缓存、更新系统及重置设置来解决。具体步骤包括移除无用扩展、关闭非必要标签页、关闭硬件加速功能、定期清理浏览数据、保持浏览器与系统更新,并在问题持续时重置浏览器至默认设置以恢复性能。 如果您在使用Edge浏览器时遇到…

    2025年12月5日
    000
  • win10怎么修改环境变量_win10系统环境变量的配置与修改方法

    要配置Windows 10环境变量,可使用四种方法:一、通过“此电脑”属性进入“环境变量”窗口,编辑用户或系统变量,路径间用分号隔开;二、按Win+R输入rundll32 sysdm.cpl,EditEnvironmentVariables直接打开环境变量设置界面;三、通过注册表编辑器修改HKEY_…

    2025年12月5日 系统教程
    000
  • Java中Cookie和Session的区别 对比两种会话管理机制的特点

    cookie和session的核心区别在于存储位置与安全性。1.cookie存储在客户端,易被篡改,适合保存少量不敏感数据;2.session存储在服务器端,更安全但占用服务器资源,适合保存敏感或大量数据。3.提高cookie安全性可通过设置httponly、secure属性及加密等方式。4.ses…

    2025年12月5日 java
    000
  • 如何构建安全且可伸缩的API?使用Composer和PHP-JWT轻松实现无状态认证

    可以通过一下地址学习composer:学习地址 在构建高性能、高并发的web应用和api时,认证和授权机制一直是开发者们关注的焦点。我曾经也深陷于传统会话(session)管理的泥潭:为了实现用户登录状态的保持,我们通常会在服务器端存储用户的会话信息,并通过cookie在客户端和服务端之间传递ses…

    开发工具 2025年12月5日
    200
  • Free System Traces Cleaner清痕教程

    1、根据自身需要,勾选想要清理的项目,随后点击软件界面下方的“清理”按钮,即可开始执行系统痕迹清除操作。 2、进入Internet Explorer设置区域后,用户可在此模块中选择需清除的浏览器隐私信息,如历史记录、Cookies等,按实际需求进行勾选。 3、选定相关清理项后,点击底部“Clean”…

    2025年12月5日 软件教程
    000
  • 如何解决PHP分布式会话管理难题,spryker/session-redis-extension助你实现高效可扩展的会话存储

    可以通过一下地址学习composer:学习地址 嘿,各位开发者!你是否也曾遇到这样的窘境:你的php应用流量日益增长,为了应对高并发,你部署了多台web服务器。然而,随之而来的会话管理问题却让你焦头烂额?用户在a服务器登录,刷新后却在b服务器上变成了未登录状态;或者,会话数据在不同服务器间同步困难,…

    开发工具 2025年12月5日
    000
  • 为什么微博pc版收不到通知_微博pc版消息通知设置检查

    若微博PC版收不到新消息通知,可能是浏览器权限、缓存或系统设置问题。请先检查浏览器通知权限是否允许,清除缓存与Cookie,确认操作系统通知功能已开启,并尝试隐身模式或其他浏览器;若问题仍存,需排查网络连接或微博服务器状态。 如果您在使用微博PC版时发现无法收到新消息通知,尽管您已经确认相关提醒功能…

    2025年12月5日
    000
  • 如何解决用户购物车数据丢失问题,SprykerPersistentCart模块助你实现无缝购物体验

    可以通过一下地址学习composer:学习地址 从购物车丢失的烦恼说起 想象一下这样的场景:你周末在家悠闲地逛着某个电商网站,看中了几件心仪的商品,逐一点击“加入购物车”。正当你准备结算时,突然接到一个紧急电话,不得不暂时离开电脑。当你几个小时后再次打开网站,满心期待地点击购物车图标时,却发现里面空…

    开发工具 2025年12月4日
    000
  • PHP怎样处理OAuth1.0授权 OAuth1.0对接的5个步骤详解

    php处理oauth 1.0授权的核心在于通过签名机制安全获取和使用access token,步骤包括:1. 获取request token;2. 用户授权;3. 验证request token;4. 获取access token;5. 使用access token访问受保护资源。手动实现需使用ha…

    2025年12月4日 后端开发
    000
  • 如何解决用户会话安全与一致性问题,SprykerSessionCustomerValidationExtension助你轻松搞定

    可以通过一下地址学习composer:学习地址 在当今数字化的世界里,无论是电商平台、社交应用还是企业内部系统,用户登录和会话管理都是基石。你是否曾为如何确保用户会话的安全性而头疼?想象一下,一个用户刚刚登录,却因为会话被劫持而面临账户风险;或者,用户在不同设备间切换时,会话状态混乱,导致不得不反复…

    开发工具 2025年12月4日
    000
  • mysql间隙锁怎么用

    区间锁,只锁一个索引区间(开区间,不包括双端端点) 1、在索引记录之间的间隙中加锁,或在索引记录之前或之后加锁,不包括索引记录本身。 2、间隙锁可用于%ign%ignore_a_1%re_a_1%幻读,以确保索引之间不会插入数据。 实例 session 1:start transaction ;se…

    数据库 2025年12月4日
    100
  • MySQL之SQL语法及SQL解析顺序源码分析

    sql(structured query language)是一种标准,作为一种访问【关系型数据库的标准语言】。许多数据库产品,如oracle,db2,sql server,postgresql,mysql都支持它。在过去几年中,nosql最初声称不需要sql,但最终不得不修正为”not…

    2025年12月4日 数据库
    000
  • 悟空搜索图片显示不出来_悟空搜索图片加载失败修复

    图片无法显示时,应先检查网络连接是否稳定,尝试切换网络或重启路由器;接着清除浏览器缓存和Cookie;确认浏览器设置中已开启图片自动加载并关闭省流模式;禁用可能拦截图片的扩展插件;最后验证图片链接有效性及服务器状态。 如果您在使用悟空搜索时遇到图片无法显示或加载失败的情况,可能是由于网络连接、浏览器…

    2025年12月4日
    000
  • MySQL出现Waiting for table metadata lock异常如何解决

    1. 出现原因 执行ddl语句时,会自动为该表加上mdl元数据write锁定,直到事务提交后才会释放锁。此锁的作用是为了保护 表结构的完整性、元数据的一致性 。 2. 处理方式 模式一下生产环境 如下图所示 : %ignore_a_1% A 开启了一个事务 并且执行DQL 此时 session B …

    2025年12月4日 数据库
    100
  • 迅雷浏览器怎么删除下载记录_迅雷浏览器下载历史清理教程

    答案:可通过三种方法清除迅雷浏览器下载记录。一、在下载管理界面删除单条或批量记录;二、在设置中选择“清除浏览数据”,勾选“下载历史”彻底清空;三、关闭浏览器后手动删除用户数据目录下的History或Downloads数据库文件,实现完全清除。 如果您在使用迅雷浏览器时希望清除下载记录,以保护个人隐私…

    2025年12月4日
    000
  • Next-Auth 中间件登录后重定向问题解决方案:JWT 会话策略配置指南

    本教程旨在解决 Next.js 应用中使用 Next-Auth 中间件时,用户成功登录后仍被错误重定向到登录页面的问题。核心解决方案在于明确配置 Next-Auth 的会话策略为 JWT,并正确实现 jwt 和 session 回调函数,以确保中间件能够正确识别并处理已认证的用户会话。 Next-A…

    2025年12月4日
    000
  • 如何用PHP制作验证码?中文验证码生成方法

    验证码的作用是防止机器人或自动化脚本进行恶意操作,比如刷评论、暴力破解密码等。1. 使用gd库生成英文数字验证码的基本步骤包括:创建画布、设置背景色和干扰元素、随机生成字符、将字符绘制到图片上、输出图片并销毁资源;2. 生成中文验证码的关键点在于准备中文字体文件并使用imagettftext函数代替…

    2025年12月4日 后端开发
    000
  • shiro教程1(HelloWorld)

    apache shiro是一个强大且易用的java安全框架,用于执行身份验证、授权、密码和会话管理。通过shiro的易于理解的api,您可以快速、轻松地为任何应用程序提供安全性,从最小的移动应用程序到最大的网络和企业应用程序。 Shiro的官方网站提供了详细的框架图和架构说明。从外部来看,Shiro…

    2025年12月4日 系统教程
    000

发表回复

登录后才能评论
关注微信