如何使用cakephp 3.0在redis中保存会话?
问题描述:
你好,我是cakephp 3.0的新手。我知道一点cakephp 2.0。我配置我使用CakePHP 2.0的Redis与this help of url但我不知道如何在CakePHP的3.0配置请帮我如何使用cakephp 3.0在redis中保存会话?
答
您需要将您的会话使用app.php文件中缓存的会话:
'Session' => [
'defaults' => 'cache'
]
然后,你会设置你的缓存,Redis的:
'Cache' => [
'default' => [
'className' => 'Redis',
],
]
答
在供应商\ CakePHP的\ CakePHP中的\ src \网络\ session.php文件
可以看到defaul t类型的会话。
它们被列为php,cake,cache,database。
$defaults = [
'php' => [
'cookie' => 'CAKEPHP',
'ini' => [
'session.use_trans_sid' => 0,
]
],
'cake' => [
'cookie' => 'CAKEPHP',
'ini' => [
'session.use_trans_sid' => 0,
'session.serialize_handler' => 'php',
'session.use_cookies' => 1,
'session.save_path' => TMP . 'sessions',
'session.save_handler' => 'files'
]
],
'cache' => [
'cookie' => 'CAKEPHP',
'ini' => [
'session.use_trans_sid' => 0,
'session.use_cookies' => 1,
'session.save_handler' => 'user',
],
'handler' => [
'engine' => 'CacheSession',
'config' => 'default'
]
],
'database' => [
'cookie' => 'CAKEPHP',
'ini' => [
'session.use_trans_sid' => 0,
'session.use_cookies' => 1,
'session.save_handler' => 'user',
'session.serialize_handler' => 'php',
],
'handler' => [
'engine' => 'DatabaseSession'
]
]
]
这是使用Cache的默认配置的缓存。也许你想使用defualt作为文件缓存。
在app.php 创建一个新的缓存配置
'redis' => [
'className' => 'Redis',
'server'=>'127.0.0.1',
'port'=>6379
],
然后你就可以在这里使用新的缓存配置。
'Session' => [
'cookie' => 'herewego',
'ini' => [
'session.use_trans_sid' => 0,
'session.use_cookies' => 1,
'session.save_handler' => 'user',
],
'handler' => [
'engine' => 'CacheSession',
'config' => 'redis'
]
],