就如thinkphp官方在文档开头所描述的一样,ThinkPHP6.0基于精简核心和统一用法两大原则在5.1的基础上对底层架构做了进一步的优化改进,并更加规范化;其实从5.x版本开始thinkphp本身就是为api应用而生。特别是在6.0版本开始框架默认压根不开启和提供模板引擎,需要下载安装模板引擎类库后方可开启。
新版本不支持操作原生$_SESSION数组和所有session_开头的函数,只能通过Session类(或者助手函数)来操作。因此,Session功能默认是没有开启的(API应用通常不需要使用Session)。甚至我们可以这样理解:在6.0版本中框架本身不提供session机制,而是通过think\facade\Session类来模拟实现session。
根据官方文档,默认session是不开启的,需要在全局的中间件中中开启;让人如果是多应用项目,仅仅想让session应用到某个应用,可以在对应的应用的中间件中开启。其中全局中间件配置文件位于app/middleware.php
实际上仅仅在中间件中进行session初始化是不行的,如写入测试代码:
session('key',1); var_dump(session('key'));
这个时候页面会int(1),但刷新页面后重新使用session(‘key’)获取数据会发现NULL,也就是获取不到数据值。原因在于在上述处理后session的缓存数据并没有保存起来(类似你填写一个表单,没点提交,