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 に答える