繁体   English   中英

Zend Framework自己的会话管理器类

[英]Zend Framework Own Session Manager class

我创建了自己的会话管理器类,但只覆盖了一种方法,即destroy($ id)方法。 我在这里写的是:

public function destroy($id)
{
    $result = parent::destroy($id);
    $model = new Model_User();
    $model->logoutUser($id);
    return $result;
}

logoutUser(); 该方法从login_users表中删除已登录的用户,因为每次用户登录时,我都会将他们的会话ID和用户ID写在logging_users表中。 但是显然,每次我检查用户未注销表时,都不会调用该方法。 可能是什么问题呢?

您的代码段似乎还可以,所以我猜问题稍后会出现,可能是在Model_User::logoutUser()或尝试在您的logged_users进行INSERT/UPDATE/DELETE时。 尝试在代码块中执行echodie($variable) ,以查看它们是否已执行以及是否按预期设置了变量(例如,检查Model_User是否调用了logoutUser()并实际传递了$ id)。 更好的是,花时间学习基本的单元测试。 ;)

旁注:由于您的Model_User不应执行诸如logout()之类的操作,因此您的代码中似乎存在一些重复项。 如果要在表中具有会话状态,请查看Zend_Session_SaveHandler_DbTable 拥有某种会话处理程序和user_model维护一个logged_users似乎是不必要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM