2017-03-27 13 views
0

J'ai installé memcache lib et a ajouté àcomment injecter "memcache" à service.yml?

framework: 
    session: 
     handler_id: session.handler.memcache 

mais quand j'essaie de l'utiliser je reçois cette erreur

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

Répondre

0

Vous voulez utiliser memcache ou memcached? Il s'agit de deux extensions différentes, alors soyez conscient de cela. Et je suggère d'utiliser memcached, memcache est mort.

Serivce session.handler.memcache n'est pas défini, vous devez donc définir un implémentant SessionHandlerInterface, dans votre cas MemcacheSessionHandler.

D'abord, nous devons définir par exemple memcache en tant que service, afin que nous puissions passer à MemcacheSessionHandler constructeur:

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

Ensuite, votre gestionnaire de session:

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

Vous pouvez également utiliser un grouper comme cache/adapter-bundle pour enregistrer un service compatible PSR-6 (ou même un composant de cache symfony, introduit dans 3.1) et utiliser Psr6SessionHandler.

Si vous souhaitez utiliser memcached, la configuration est presque identique.

+0

J'ai cette erreur après l'injection? [Symfony \ Component \ DependencyInjection \ Exception \ RuntimeException] La définition de "calls" n'a pas de classe. Si vous avez l'intention d'injecter ce service dynamiquement au moment de l'exécution, veuillez l'indiquer comme synthétique = vrai. S'il s'agit d'une définition abstraite uniquement utilisée par les définitions enfants, veuillez ajouter abstract = t rue, sinon spécifiez une classe pour vous débarrasser de cette erreur. – mrsharko

+0

j'ai corrigé l'erreur qui était parce que certains espaces – mrsharko

+0

mais j'obtiens cette erreur maintenant Le service "memcache" a une dépendance sur un paramètre inexistant "host_p arameter". – mrsharko