2017-03-27 6 views
0

나는 memcache에 lib 디렉토리를 설치하고"memcache"를 service.yml에 주입하는 방법은 무엇입니까?

framework: 
    session: 
     handler_id: session.handler.memcache 

에 추가하지만 난 그것을 사용하려고 할 때 나는

[Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException] 
    You have requested a non-existent service "session.handler.memcache".  

답변

0

당신은 memcache 또는 memcached를 사용하려면이 오류가? 두 가지 다른 확장 기능이므로 잘 알고 있어야합니다. 은 내가 memcached, memcache가 죽었다는 사용하는 것이 좋습니다.

Serivce session.handler.memcache이 정의되어 있지 않으므로 MemcacheSessionHandlerSessionHandlerInterface을 구현하는 것을 정의해야합니다.

첫째, 우리는 서비스로 memcache에 인스턴스를 정의 할 필요가있다, 그래서 우리는 MemcacheSessionHandler 생성자에 전달할 수 있습니다

session.handler.memcache: 
     class: Symfony\Component\HttpFoundation\Session\Storage\Handler\MemcacheSessionHandler 
     arguments: [@memcache] 

당신은 또한을 사용할 수 있습니다, 그리고

memcache: 
    class: \Memcache 
calls: 
    - [ addServer, [ %host_parameter%, %port_parameter% ]] 

세션 핸들러를 cache/adapter-bundle 번들과 같이 PSR-6 호환 서비스 (또는 3.1에서 소개 한 심포니 캐시 구성 요소)를 등록하고 Psr6SessionHandler을 사용하십시오. 당신이 memcached를 사용하려면

, 그것은 거의 동일한 구성-현명합니다.

+0

주사 후이 오류가 발생합니까? "전화"에 대한 [심포니 \ 구성 요소 \ 의존성 주입 \ 예외 \의 RuntimeException의] 정의는 어떤 클래스가 없습니다. 런타임에이 servi ce를 동적으로 주입하려면 synthetic = true로 표시하십시오. 이 전적으로 아이의 정의에서 사용되는 추상적 인 정의 경우, 추상적 = t 후회를 추가, 그렇지 않으면 클래스가이 오류를 제거하는 지정하십시오. – mrsharko

+0

내가 어떤 공간 – mrsharko

+0

는하지만 난 지금 서비스 "memcache에를"이 오류가 있기 때문에 존재하지 않는 매개 변수 "host_p arameter"에 종속되어 있던 오류를 수정했습니다. – mrsharko