[英]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
时。 尝试在代码块中执行echo
和die($variable)
,以查看它们是否已执行以及是否按预期设置了变量(例如,检查Model_User是否调用了logoutUser()并实际传递了$ id)。 更好的是,花时间学习基本的单元测试。 ;)
旁注:由于您的Model_User不应执行诸如logout()之类的操作,因此您的代码中似乎存在一些重复项。 如果要在表中具有会话状态,请查看Zend_Session_SaveHandler_DbTable 。 拥有某种会话处理程序和user_model维护一个logged_users
似乎是不必要的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.