session
重写了PHP自带的 SESSION 机制,存储介质支持:本地模式、Memcache、Redis、Mamcached、Xcache,php运行模式支持:LAMP、LNMP、SWOOLE
1.引入入口 && 获取实例
use Itxiao6SessionSessionManager; $session = Itxiao6SessionSessionManager::getSessionInterface();
2.设置驱动
1.本地存储方式(默认)
$session -> set_deiver(new DoctrineCommonCacheFilesystemCache(__DIR__.DIRECTORY_SEPARATOR.'tmp'.DIRECTORY_SEPARATOR));
2.Redis 驱动
$redis = new Redis(); $redis->connect('127.0.0.1', 6319); $cacheDriver = new DoctrineCommonCacheRedisCache(); $cacheDriver->setRedis($redis); $session -> set_deiver($cacheDriver);
3.Memcache 驱动
$memcache = new Memcache(); $memcache->connect('127.0.0.1', 11211); $cacheDriver = new DoctrineCommonCacheMemcacheCache(); $cacheDriver->setMemcache($memcache); $session -> set_deiver($cacheDriver);
4.Memcached 驱动
$memcached = new Memcached(); $memcached->addServer($cacheConfig['Mamcached']['host'], $cacheConfig['Mamcached']['port']); $cacheDriver = new DoctrineCommonCacheMemcachedCache(); $cacheDriver->setMemcached($memcached); $session -> set_deiver($cacheDriver);
5.Xcache 驱动
$session -> set_deiver(new DoctrineCommonCacheXcacheCache());
6.传入配置
$session -> set_config(new Itxiao6SessionToolsConfig([ 'session_name'=>'PHPSESSION', 'session_path'=>'/', 'session_id_length'=>32, 'session_id_type'=>1, 'session_storage_prefix'=>'itxiao6_session_', // 默认有效期一天 'session_expire'=>3600*24, ]));
7.启动会话
try{ // 启动会话 $session -> start(); }catch (Throwable $exception){ // 打印错误 var_dump($exception); }
8.设置值
$session -> session() -> set('name','戒尺');
9.设置值
echo $session -> session() -> get('name');
附录1
SWOOLE 模式使用方式 操作和 驱动和上文使用方法一样,唯一的区别就是 步骤使用1的时候调用的"getSessionInterface" 改为"getSwooleSessionInterface" 并且传入 $request 和 $response
// 创建http server $http = new swoole_http_server('0.0.0.0', 9501, SWOOLE_BASE); // 监听request 事件 $http->on('request', function(swoole_http_request $request, swoole_http_response $response){ /** * 获取Swoole 会话 */ $session = Itxiao6SessionSessionManager::getSwooleSessionInterface($request,$response); /** * 设置驱动(文件驱动) */ $session -> set_deiver(new DoctrineCommonCacheFilesystemCache(__DIR__.DIRECTORY_SEPARATOR.'tmp'.DIRECTORY_SEPARATOR)); /** * 设置配置实例 */ $session -> set_config(new Itxiao6SessionToolsConfig()); /** * 启动会话 */ try{ $session -> start(); }catch (Throwable $exception){ var_dump($exception); } /** * 设置一个值 到session 里 */ $session -> session() -> set('user_info',['nickname'=>'戒尺','phone'=>'15538147923','sub'=>['id'=>1]]) -> save(); /** * 获取session 里的一个值 */ $response -> write(json_encode($session -> session() -> get('user_info'))); /** * 结束请求 */ $response -> end(); }); /** * 启动http server */ $http -> start();
版权声明:
1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。2、网站不提供资料下载,如需下载请到原作者页面进行下载。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考学习用!
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。