0

我正在尝试使用 sf2 框架在 memcache 服务器中托管我的会话。这是我的配置:在 config.yml

framework:
    ...
    session:
        handler_id: session.handler.mc
...
services:
    session.memcache:
        class: Memcache
        calls:
            - [addServer , [%session_memcache_host%, %session_memcache_port%]]
    session.handler.mc:
        class: Symfony\Component\HttpFoundation\Session\Storage\Handler\MemcacheSessionHandler
        arguments: [@session.memcache]

在参数中,我设置了这样的信息:

session_memcache_host: memcachesession.lan
session_memcache_port: 11211

在我的控制器中,我有这个:

public function indexAction()
{
    $session = new Session();
    $session->start();
    var_dump($session->getId());
    $session->set('foo','bar');
    $session->save();
    var_dump(session_id());
    var_dump($_SESSION);
    return array('name' => 'test');
}

而且我仍然没有在 memcache 中进行会话……我不知道为什么。任何帮助将不胜感激,谢谢。

4

1 回答 1

1
services:
session.memcache:
    class: Memcache
    calls:
        - [addServer , [%session_memcache_host%, %session_memcache_port%]]
session.handler.mc:
    class: Symfony\Component\HttpFoundation\Session\Storage\Handler\MemcacheSessionHandler
    arguments: [@session.memcache, {prefix: ""}]

这里的要点是设置一个空前缀......所以我有我的真实会话名称......我在我的其他应用程序中拥有的那个。现在一切正常

于 2012-10-05T14:27:57.083 回答