2017-03-27 5 views
0

私はmemcacheのlibがインストールされ、"memcache"をservice.ymlに注入する方法は?

framework: 
    session: 
     handler_id: session.handler.memcache 

にこれを追加しましたが、私はそれを使用しようとしたとき、私はこのエラーは、memcacheまたはmemcachedを使用したい

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

答えて

0

取得しますか? これは2つの異なる拡張機能ですので、それに注意してください。 そして私はmemcachedmemcacheが死んでいることをお勧めします。

Serivce session.handler.memcacheが定義されていないため、MemcacheSessionHandlerSessionHandlerInterfaceを実装する定義が必要です。

まず、我々はサービスとしてmemcacheのインスタンスを定義する必要があり、私たちはMemcacheSessionHandlerコンストラクタに渡すことができます:

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

次に、あなたのセッションハンドラ:

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

ます。また、使用することができますcache/adapter-bundleのようにバンドルして、PSR-6互換サービス(または3.1で導入されたsymfonyキャッシュコンポーネント)を登録し、Psr6SessionHandlerを使用します。

あなたがmemcachedを使用する場合、それはほぼ同様の構成-が賢明です。

+0

注射後にこのエラーが発生しますか? [symfonyの\コンポーネント\依存性の注入\例外の\のRuntimeException] "通話" の定義には、クラスを持っていません。実行時にこのサービス を動的に注入する場合は、synthetic = trueとしてマークしてください。これが子定義でのみ使用される 抽象定義の場合、abstract = t rueを追加してください。それ以外の場合は、このエラーを取り除くクラスを指定してください。 – mrsharko

+0

は、私はいくつかのスペース – mrsharko

+0

は、しかし、私は今サービス「memcacheのを」このエラーが出るので、存在しないパラメータ「host_p arameter」に依存していたエラーを修正しました。 – mrsharko

関連する問題