2012-10-05 3 views
0

sf2 프레임 워크를 사용하여 memcache 서버에서 세션을 호스트하려고합니다.memcache에 symfony 2.1.2를 연결하여 세션을 저장할 수 없습니다.

:이가 내 컨트롤러에서

session_memcache_host: memcachesession.lan 
session_memcache_port: 11211 

: 나는 그렇게 내 정보를 설정 한

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] 

config.yml 및 매개 변수 : 여기에 내가 가지고있는 설정입니다

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에 내 세션이 없습니다 ... 이유를 알 수 없습니다. 도움을 주시면 감사하겠습니다.

+0

같은 문제가 있습니다. NativeSesionHandler 인터페이스 문제로 인해 사용될 수 있습니다. 그들은 Symfony2.2에서 핸들러를 제거 할 계획입니다. –

+0

사실 저는 그것이 확실하지 않습니다 ...하지만 MemcacheSessionHandler의 접두사 부분이이를 깨뜨린 것처럼 보입니다. 나는 접두어 부분을 제거하기 위해 그것을 덮어 썼고 괜찮아 보입니다. –

+0

내 config.yml에서 그것을 지우는 법을 모르겠습니다 ... 빈 문자열을 어떻게 설정합니까? –

답변

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: ""}] 

여기에서 요점은 빈 접두사를 설정하는 것이 었습니다 ... 그래서 나는 내 실제 세션 이름을 가지고 ... 내 다른 응용 프로그램에서 가지고있는 하나. 모든 것이 이제 괜찮습니다.

관련 문제