そこで、Zend_Toolを使用してサイトテンプレートを作成し、これらのパラメーターをapplication.iniに追加しました。
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"
問題は、セッションリソースまたはsaveHandlerが呼び出されていることにあるようには見えませんが、代わりに、PHP/Zendがデータベースでセッションをセットアップしようとさえしていないようです。
セッションリソースに必要なオプションを削除し、さまざまなZendクラスにチェックを入れて、それらが実行されているかどうかを確認しない限り、エラーは発生しません。彼らはそうです。
私の現在の推測では、Zend_Sessionがデフォルトのセッション処理をオーバーライドできるようにするには、php.iniで何かを変更する必要があります。このテストにはZendServerを使用しています。
反応
session.auto_startを確認したところ、0に設定されていました。
また、データベースハンドラーを使用せずにテストし、代わりにパスを変更しようとしましたが、これも失敗しました。
セットアップでわかることから、Zend_Session_SaveHandler_DbTable :: __constructが呼び出され、resources.db設定がセッションの上にあり、他のすべてに対して機能しています。
現在、saveHandlers.optionsデータの設定が正しくないことに加えて、saveHandlerの設定が正しくないために発生したエラーに関連するStackOverflowの他の投稿を見てきました。
上で述べたように、セッション処理のために渡された関数を呼び出さないPHPと関係があると思います。独自のセッション管理を設定する場合は、これらの呼び出しに接続して、各状態で実行されるコールバック関数を提供できます(open close read writeなど)。
セッション管理を変更できるようにするために有効にする必要がある特定の設定があるかどうかを知るには、PHP.iniの設定について十分に知りません。