Session.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. namespace app\common\helpers;
  3. use Yii;
  4. /*  
  5. * Session.php  
  6. * Session 操作
  7. * 更新: Jacky.Chen 2019/06/20 15:45  
  8. *  
  9. */
  10. class Session
  11. {
  12. static function getInitCls()
  13. {
  14. static $initCls = NULL;
  15. if(!isset($initCls)) $initCls = new Session();
  16. return $initCls;
  17. }
  18. //设置
  19. public static function set($name,$value)
  20. {
  21. $session = Yii::$app->session;
  22. if ($session->isActive)$session->open();
  23. if(strpos($name,'.')!==false)
  24. {
  25. self::setArray($name,$value);
  26. }
  27. else{
  28. $session->set($name, $value);
  29. }
  30. return true;
  31. }
  32. //读取
  33. public static function get($name)
  34. {
  35. $session = Yii::$app->session;
  36. if ($session->isActive)$session->open();
  37. if(strpos($name,'.')!==false)
  38. {
  39. return self::getArray($name);
  40. }
  41. else
  42. {
  43. return $session->get($name);
  44. }
  45. }
  46. //设置数组中的值,用法 setArray('user.name','jack')
  47. public static function setArray($name,$value)
  48. {
  49. $session = Yii::$app->session;
  50. if ($session->isActive)$session->open();
  51. $names = explode('.',$name);
  52. $rs = $session->get($names[0]);
  53. $rs[$names[1]] = $value;
  54. self::set($names[0],$rs);
  55. return true;
  56. }
  57. //读取
  58. public static function getArray($name)
  59. {
  60. $session = Yii::$app->session;
  61. if ($session->isActive)$session->open();
  62. $names = explode('.',$name);
  63. return $session[$names[0]][$names[1]];
  64. }
  65. //删除
  66. public static function remove($name)
  67. {
  68. $session = Yii::$app->session;
  69. if ($session->isActive)$session->open();
  70. $session->remove($name);
  71. return true;
  72. }
  73. //销毁
  74. public static function destory()
  75. {
  76. $session = Yii::$app->session;
  77. if ($session->isActive)$session->open();
  78. $session->destroy();
  79. return true;
  80. }
  81. }