一,组件注册
CWebApplication::registerCoreComponents()
protected function registerCoreComponents() { parent::registerCoreComponents(); $components=array( ‘session‘=>array( ‘class‘=>‘CHttpSession‘, ), //... ); $this->setComponents($components); }
二,使用
//session操作 $se = Yii::app()->session; //获得组件 //设置 $se[‘test‘]=‘my vlaue‘; //组件 $_SESSION[‘11‘] = ‘1111111111‘; //常规 //获取 echo ‘test:`‘.$se[‘test‘].‘`‘; echo ‘11:`‘.$_SESSION[‘11‘].‘`‘; //删除 $se->remove(‘11‘); //组件 unset($se[‘test‘]); //常规 //获取全部 $test_sessions = $se->toArray();//组件 $test_sessions = $_SESSION; //常规 print_r($test_sessions);exit();
三,源码
public function get($key,$defaultValue=null) { return isset($_SESSION[$key]) ? $_SESSION[$key] : $defaultValue; } public function remove($key) { if(isset($_SESSION[$key])) { $value=$_SESSION[$key]; unset($_SESSION[$key]); return $value; } else return null; } public function offsetGet($offset) { return isset($_SESSION[$offset]) ? $_SESSION[$offset] : null; } public function offsetSet($offset,$item) { $_SESSION[$offset]=$item; } public function toArray() { return $_SESSION; } public function destroy() { if(session_id()!==‘‘) { @session_unset(); @session_destroy(); } }
原文:http://liyongjiang.blog.51cto.com/5800344/1358002