背景

本周同事再对应现全业务开发框架 Laravel 做升级服务,由 5.3 升级至 5.86.8,经过差不多 2天的时间处理,也已再测试环境完成了自测,但就前天下午 3 点左右完成上线,依然还是暴露出了几个问题。

问题

  1. Cookie 取消了自动序列化与反序列化机制

导致结果:写入到数据库的字段为,序列化的值,如:s:13:"google,google";,又因为的新版本的框架代码写入的 cookie,不再自动序列化,所以追加后的 cookie 是:s:13:"google,google";,google,google,google,google,google,google,,这就导致处理此问题复杂化了。

  1. Event 事件,使用 dispatch 替换了 fire 方法,涉及 Laravel passport 扩展,导致 App 用户登录不了。

解决

问题 1

  1. 全局处理:追踪用户行为的 Cookie,不再连续记录多次的 Cookie,采用最后一次的值覆盖旧 Cookie
  2. 写入数据时:如果含有旧未反序列化的 Cookie, 通过修改器自动完成反序列化
  3. 清洗现有数据库中的脏数据为正确数据

问题 2

升级 Laravel passport 扩展包为对应的 Laravel 框架所支持的版本。