我正在尝试在Bundle扩展类
中动态设置会话保存路径namespace AdminBundle\DependencyInjection;
class AdminExtension extends Extension{
...
$sessionDir = $envDir . "session/store/$userDir/__sess";
$container->setParameter("session.save_path", $sessionDir);
...
}
Symfony缓存扩展类
$sessionDir = $envDir . "session/store/12345/__sess";
因此它使sessionDir等于第一次调用的用户的目录。
第一位用户正常工作,但对其他用户不起作用。
我该怎么做才能解决这个问题?
答案 0 :(得分:0)
我通过编写自己的 NativeSessionHandler
来解决问题class NativeFileSessionHandler extends NativeSessionHandler
{
/**
* @param ContainerInterface $container
*/
public function __construct(ContainerInterface $container)
{
...
ini_set('session.save_path', $envDir . "session/storefront/$userDir/__sess");
ini_set('session.save_handler', 'files');
}
}
<强> services.yml 强>
custom_file_session_handler:
class: CoreBundle\Session\Handler\NativeFileSessionHandler
arguments: [@service_container]
<强> config.yml 强>
framework:
session:
handler_id: custom_file_session_handler