Yii :: app() - > user-> yii中的setState?

时间:2014-09-06 08:34:03

标签: php session yii frameworks setstate

我想在yii中了解这一点:

Yii::app()->user->setState('key','value');

如果我有一个大小为10的数组,我将此数组设置为如下状态:

 Yii::app()->user->setState('data',$dataArray) 

我有另一个大小为15000的数组,我将此数组设置为如下状态:

Yii::app()->user->setState('data',$dataArray)

这可以吗?

或者它会影响我的Yii项目的速度,即setState数据大小越大,yii项目的速度会越慢?

Yii::app()->user->setState('password',$password)设置密码等机密数据是否安全?

2 个答案:

答案 0 :(得分:4)

由于安全问题变量,请不要将密码存储在setState中,但如果您需要使用某些加密。

您可以在此处看到setState函数正在使用该会话 http://www.yiiframework.com/doc/api/1.1/CWebUser#setState-detail

您可以在会话中存储尽可能多的数据。所有会话都存储在服务器上。会话的大小没有限制,但PHP可以采用的内存有限:http://ca.php.net/manual/en/ini.core.php#ini.memory-limit

关于会话中大数据的另一个非常有用的链接是

Is it okay to save lots of information in $_SESSION?

谢谢

答案 1 :(得分:0)

请不要在setState函数中保存用户个人信息,如密码或密钥等,因为这是在用户身份验证后创建的会话中设置数据。因此,请不要在setState函数中存储大数据,这会降低您的应用程序性能,无论您的会话存储在DB还是Cookie中。