【发布时间】:2012-10-05 13:43:52
【问题描述】:
我正在尝试使用 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 中进行会话...我不知道为什么。 任何帮助将不胜感激,谢谢。
【问题讨论】:
-
我遇到了同样的问题。它可能是由 NativeSessionHandler 接口问题引起的。他们计划在 Symfony2.2 中删除这些处理程序
-
其实我不太确定......但似乎 MemcacheSessionHandler 中的前缀部分似乎打破了它。我已经覆盖它以删除前缀部分,看起来没问题。
-
我不知道如何从我的config.yml中清除它......你如何设置一个空字符串?
-
嗯,是的……默认情况下,sf2 会在所有前缀上加上 sf2s_ 这就是为什么我在其他应用程序中找不到它的原因。