Yii分析12:Yii核心web组件之对话类CHttpSession

Yii分析12:Yii核心web组件之会话类CHttpSession

CHttpSession提供session级的数据管理和配置,实例化后可以像数组一样存取session值:

  $session=new CHttpSession;
  $session->open();
  $value1=$session['name1'];  // get session variable 'name1'
  $value2=$session['name2'];  // get session variable 'name2'
值得注意的是CHttpSession有两个子类:CcacheHttpSession和CdbHttpSession,可以实现使用缓存或者数据库来存储session数据,而不使用PHP原生的session存储。

CcacheHttpSession实现了用缓存作为存储的session组件,缓存可以是Icache接口实现的任何缓存类型,需要注意的是缓存的易失性,数据很有可能在某个时刻被清空,因此,必须确保该组件使用的缓存的稳定性。

CdbHttpSession实现了用数据库作为存储的session组件,如果不指定connectionID,则使用本地的SQLite数据库,建议预先建好数据库,并且在expire字段上加索引,并且设置配置项autoCreateSessionTable为false。