###Backgroud
唯品会B2C等多个项目都采用PHP开发,而我们用户团队后端是Java为主的团队,有时我们需要和PHP应用共享session. 此时session序列化和反序列化是一个必须面对的问题.
###PHP的序列化
PHP支持多种序列化协议,json是其中对多语言支持最好的,所以采用JSON格式共享session是个选择.我们这里介绍另一种途径:Java兼容PHP自身的序列化协议.
PHP序列化和反序列化使用 serialize()&unserialize() 接口
session在Java中可以被看作 Map<String,Object>,在PHP中被看作array.
###Java兼容PHP序列化
由于PHP本身序列化不是二进制的,所以Java兼容PHP,可以看作获取session string之后做文本的解析. 为了不重复造轮子,这里使用一个开源框架pherialize(https://github.com/kayahr/pherialize).
使用列子
使用起来还是十分简便的,但是需要注意的是支持的类型有限. 关于支持的类型列表,请参照这里