Zend Framework拥有会话管理器类

时间:2012-03-05 08:29:39

标签: php zend-framework

我创建了自己的Session Manager类,我只覆盖了一个方法,即destroy($ id)方法。我在那里写道:

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

logoutUser();方法从logged_users表中删除登录用户,因为每次用户登录时,我都会在logged_users表中写入会话ID和userid。但显然这个方法没有被调用因为我每次检查表时用户都没有注销。可能是什么问题?

1 个答案:

答案 0 :(得分:0)

您的代码段似乎没问题,所以我猜测问题会在以后的某个地方发生,可能在Model_User::logoutUser()或在INSERT/UPDATE/DELETE - 表中尝试logged_users时。在代码块中尝试echodie($variable),看看它们是否已执行并且变量是否按预期设置(例如,如果调用了logoutUser()并且实际传递了$ id,请检入Model_User)。更好的是,花点时间学习基本的单元测试。 ;)

旁注:您的代码中似乎存在一些重复,因为您的Model_User不应执行logout()等操作。如果您想在表格中拥有会话状态,请查看Zend_Session_SaveHandler_DbTable。 logged_users - 表是不必要的。