delete from hateblo.jp where 1=1;

タイトルに意味はありません。

Zend Frameworkのマニュアルに一部誤記がある

対象

  • Zend FrameworkMVCフレームワークとして使っている
  • セッション情報の管理をZend Frameworkを用いている
  • セッション情報をDbへ保存しようと考えている
  • application.ini でセッションについての設定を行っている

問題の概要

セッション情報をDbへ保存しようとして、設定したものが問題で、セッションがスタートしないことがある。
特に問題となるケースが、application.iniへの設定が間違えているときに、セッションがスタートせず、不明なエラーとなってしまうことが確認されている。(保存先を見つけられない等の要因により発生するらしい)

Fatal error: Exception thrown without a stack frame in Unknown on line 0

問題のある設定(application.ini)

resources.session.save_path = APPLICATION_PATH "/../data/session"
resources.session.use_only_cookies = true
resources.session.remember_me_seconds = 864000
resources.session.saveHandler.class = "Zend_Session_SaveHandler_DbTable"
resources.session.saveHandler.options.name = "session"
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"

http://framework.zend.com/manual/ja/zend.application.available-resources.html#zend.application.available-resources.session より引用

正しい設定(application.ini)

resources.session.save_path = APPLICATION_PATH "/../data/session"
resources.session.use_only_cookies = true
resources.session.remember_me_seconds = 864000
resources.session.saveHandler.class = "Zend_Session_SaveHandler_DbTable"
resources.session.saveHandler.options.name = "session"
resources.session.saveHandler.options.primary.0 = "session_id"
resources.session.saveHandler.options.primary.1 = "save_path"
resources.session.saveHandler.options.primary.2 = "name"
resources.session.saveHandler.options.primaryAssignment.0 = "sessionId"
resources.session.saveHandler.options.primaryAssignment.1 = "sessionSavePath"
resources.session.saveHandler.options.primaryAssignment.2 = "sessionName"
resources.session.saveHandler.options.modifiedColumn = "modified"
resources.session.saveHandler.options.dataColumn = "session_data"
resources.session.saveHandler.options.lifetimeColumn = "lifetime"
参考資料