我在 application.ini 中有这个配置:
resources.session.save_path = APPLICATION_PATH "/../data/session"
resources.session.use_only_cookies = true
resources.session.gc_maxlifetime = 864000
resources.session.remember_me_seconds = 864000
resources.session.saveHandler.class = "Zend_Session_SaveHandler_DbTable"
resources.session.saveHandler.options.name = "jm_sessions"
resources.session.saveHandler.options.primary.session_id = "session_id"
resources.session.saveHandler.options.primary.save_path = "save_path"
resources.session.saveHandler.options.primary.name = "name"
resources.session.saveHandler.options.primaryAssignment.sessionId = "sessionId"
resources.session.saveHandler.options.primaryAssignment.sessionSavePath = "sessionSavePath"
resources.session.saveHandler.options.primaryAssignment.sessionName = "sessionName"
resources.session.saveHandler.options.modifiedColumn = "modified"
resources.session.saveHandler.options.dataColumn = "session_data"
resources.session.saveHandler.options.lifetimeColumn = "lifetime"
数据库结构是 100% 正确的,并且与 db(工作)的连接设置在此之上。我收到 session_id、save_path 等是未定义索引的错误。之后,我将此代码添加到引导程序:
protected function _initCoreSession()
{
$config = array(
'name' => 'jm_sessions',
'primary' => array(
'session_id',
'save_path',
'name'
),
'primaryAssignment' => array(
'sessionId',
'sessionSavePath',
'sessionName'
),
'modifiedColumn' => 'modified',
'dataColumn' => 'session_data',
'lifetimeColumn' => 'lifetime'
);
Zend_Session::setSaveHandler(new Zend_Session_SaveHandler_DbTable($config));
Zend_Session::start();
}
之后,我收到会话处理程序未找到 bd 适配器的错误:
Fatal error: Uncaught exception 'Zend_Db_Table_Exception' with message 'No adapter found for
Zend_Session_SaveHandler_DbTable'
Zend 文档在这种情况下非常糟糕,我根本不知道我的配置可能有什么问题。