Zend Framework memcache会话保存处理程序并使用现有会话

时间:2012-02-02 14:17:23

标签: zend-framework session memcached libmemcache

我在主域上有一个遗留的PHP应用程序,它使用memcache作为我们会话的后端。这非常有效。我正在尝试在子域上添加一个新的Zend Framework应用程序,该子域可以共享在主域上创建的相同会话。

我在application.ini中配置了session和savehandler:

resources.session.saveHandler.class = "App_Session_SaveHandler_Cache"
resources.session.saveHandler.options.type = "Libmemcached"
resources.session.saveHandler.options.maxlifetime = 300
resources.session.saveHandler.options.front.lifetime = 300
resources.session.saveHandler.options.front.automatic_serialization = true
resources.session.saveHandler.options.back.servers.0.host = "127.0.0.1"
resources.session.saveHandler.options.back.servers.0.port = 11211
resources.session.saveHandler.options.back.servers.0.persistent = true
resources.session.saveHandler.options.back.servers.0.status = true
resources.session.saveHandler.options.back.servers.1.host = "127.0.0.2"
resources.session.saveHandler.options.back.servers.1.port = 11211
resources.session.saveHandler.options.back.servers.1.persistent = true
resources.session.saveHandler.options.back.servers.1.status = true

会话保存处理程序类(App_Session_SaveHanlder_Cache实现Zend_Session_SaveHandler_Interface并使用Zend_Cache工厂传入Libmemcached选项进行后端存储。

在我的bootstrap中,我将_init方法列为第一个调用会话引导程序的方法:

protected function _initForceSession()
{   
    $this->bootstrap('session');
    Zend_Session::start();
}

我希望能够继续使用子域中主域中的现有会话(如果存在),并创建新会话(如果还没有)。

我能够在遗留应用程序中创建的新应用程序中成功读取会话ID。但是,我无法让新应用程序实际读取会话本身。

我尝试从新应用程序直接读取memcache(绕过会话),我能够以这种方式获取会话数据。

我在这里缺少什么?

0 个答案:

没有答案