Session.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * Author: 芸众商城 www.yunzshop.com
  5. * Date: 2017/3/29
  6. * Time: 下午2:38
  7. */
  8. namespace app\common\services;
  9. use app\common\helpers\WeSession;
  10. use app\common\helpers\YunSession;
  11. /**
  12. * Session控制类
  13. */
  14. class Session
  15. {
  16. const PREFIX = 'yunzshop_';
  17. /**
  18. * 设置session
  19. * @param String $name session name
  20. * @param Mixed $data session data
  21. * @param Int $time 超时时间(秒)
  22. */
  23. public static function set($name, $data, $time = 864000)
  24. {
  25. $expire = time() + $time;
  26. $session_data = array();
  27. $session_data['data'] = $data;
  28. $session_data['expire'] = $expire;
  29. $_SESSION[self::PREFIX . $name] = $session_data;
  30. }
  31. /**
  32. * 读取session
  33. * @param String $name session name
  34. * @return Mixed
  35. */
  36. public static function get($name)
  37. {
  38. if(strpos($name,'.')){
  39. $array = explode('.',$name);
  40. $name = array_shift($array);
  41. $key = implode('.',$array);
  42. }
  43. if (isset($_SESSION[self::PREFIX . $name])) {
  44. if(isset($key)) {
  45. return array_get($_SESSION[self::PREFIX . $name]['data'], $key);
  46. }else{
  47. return $_SESSION[self::PREFIX . $name]['data'];
  48. }
  49. }
  50. return false;
  51. }
  52. /**
  53. * 清除session
  54. * @param String $name session name
  55. */
  56. public static function clear($name)
  57. {
  58. unset($_SESSION[self::PREFIX . $name]);
  59. }
  60. public static function put($name, $data, $time = 864000)
  61. {
  62. self::set($name, $data, $time);
  63. }
  64. public static function remove($name)
  65. {
  66. self::clear($name);
  67. }
  68. public static function has($name)
  69. {
  70. if(strpos($name,'.')){
  71. $array = explode('.',$name);
  72. $name = array_shift($array);
  73. $key = implode('.',$array);
  74. }
  75. if(!isset($_SESSION[self::PREFIX . $name])){
  76. return false;
  77. }
  78. if(isset($key) && !array_has($_SESSION[self::PREFIX . $name]['data'],$key)){
  79. return false;
  80. }
  81. return true;
  82. }
  83. public static function flash($key, $value)
  84. {
  85. self::put($key, $value);
  86. }
  87. public static function factory($uniacid)
  88. {
  89. if (config('app.framework') == 'platform') {
  90. YunSession::start($uniacid, Utils::getClientIp());
  91. } else {
  92. WeSession::start($uniacid, CLIENT_IP);
  93. }
  94. }
  95. }