如果需要在数据库中或者以其他方式存储会话数据, 需要使用 session_set_save_handler() 函数来创建一系列用户级存储函数。 可以使用 SessionHandlerInterface 类 或者通过继承 SessionHandler 类扩展 PHP 的内置处理程序, 从而达到自定义会话保存机制的目的。
   函数 session_set_save_handler() 的参数即为在会话生命周期内要调用的一组回调函数:
   open, read,
   write 以及 close。
   还有一些回调函数被用来完成垃圾清理:destroy 用来删除会话,
   gc 用来进行周期性的垃圾收集。
  
   因此,会话保存处理程序对于 PHP 而言是必需的。
   默认情况下会使用内置的文件会话保存处理程序。
   可以通过 session_set_save_handler() 函数来设置自定义会话保存处理程序。
   一些 PHP 扩展也提供了内置的会话处理程序,例如:sqlite,
   memcache 以及 memcached,
   可以通过配置项 session.save_handler 来使用它们。
  
   会话开始的时候,PHP 会调用 open 处理程序,然后再调用
   read 回调函数来读取内容,该回调函数返回已经经过编码的字符串。
   然后 PHP 会将这个字符串解码,并且产生一个数组对象,然后保存至 $_SESSION 
   超级全局变量。
  
   当 PHP 关闭的时候(或者调用了 session_write_close() 之后),
   PHP 会对 $_SESSION 中的数据进行编码,
   然后和会话 ID 一起传送给 write 回调函数。
   write 回调函数调用完毕之后,PHP 内部将调用
   close 回调函数。
  
   销毁会话时,PHP 会调用 destroy  回调函数。
  
  根据会话生命周期时间的设置,PHP 会不时地调用 gc 回调函数。
  该函数会从持久化存储中删除超时的会话数据。
  超时是指会话最后一次访问时间距离当前时间超过了 $lifetime 所指定的值。
 
