1. 程式人生 > >【PHP工具類】SESSION

【PHP工具類】SESSION

author:咔咔

wechat:fangkangfk

<?php

namespace data\util;

use Session;
/**
 * 工具類
 * 使用者快取 facade代理 SC
 */
class SC
{
      /**
       * 使用者登入的session key
       */
      CONST LOGIN_MARK_SESSION_KEY = 'LOGIN_MARK_SESSION';
      /**
       * 許可權資訊
       * @var string
       */
      CONST USER_ROLE_SESSION      = 'USER_ROLE_SESSION';
      /**
       * USER使用者資訊
       * @var string1
       */
      CONST USER_INFO_SESSION      = 'USER_INFO_SESSION';

     /**
      * 使用者是否是系統後臺使用者
      */
      CONST USER_IS_SYSTEM_SESSION = 'USER_IS_SYSTEM_SESSION';
      // /**
      //  * 是否設定使用者登入的有效時間
      //  * @var string
      //  */
      // CONST CHECK_TIME_SESSION = 'CHECK_TIME_SESSION';
      //
      // private $checkTime = false;

      //---------------------------設定和判斷使用者的是否登入
      // 設定使用者登入token
      public function setLogin($value)
      {
          Session::set(self::LOGIN_MARK_SESSION_KEY, password_hash($value, 1));
      }
      // 判斷使用者是否登入成功
      public function getLogin()
      {
          return Session::get(self::LOGIN_MARK_SESSION_KEY);
      }
      //---------------------------設定使用者和獲取使用者的登入資訊
      // 設定使用者的資訊
      public function setUserInfo($value)
      {
          Session::set(self::USER_INFO_SESSION, $value);
      }
      // 獲取使用者的資訊
      public function getUserInfo($value = null)
      {
          $userInfo = Session::get(self::USER_INFO_SESSION);
          // 這裡做這個判斷是因為在驗證token時需要使用者的id
          return ($value) ? $userInfo[$value] : $userInfo;
      }
      //--------------------------設定和獲取使用者的許可權
      // 設定使用者的角色
      public function setUserRole($value)
      {
          Session::set(self::USER_ROLE_SESSION, $value);
      }
      // 獲取使用者的角色
      public function getUserRole()
      {
          return Session::get(self::USER_ROLE_SESSION);
      }

      //--------------------------設定和獲取使用者是否是系統後臺使用者

    /**
     * 設定使用者是否為後臺系統使用者
     * @access public
     * @param boolean $value 使用者是後臺使用者為true,反正false
     */
      public function setIsSystem($value)
      {
          Session::set(self::USER_IS_SYSTEM_SESSION,$value);
      }

    /**
     * 獲取使用者是否是後臺使用者
     * @access public
     * @return array
     */
      public function getIsSystem()
      {
          return Session::get(self::USER_IS_SYSTEM_SESSION);
      }

      //-------------------------使用者退出清空使用者快取資訊
      // 退出登入
      public function clear()
      {
          Session::del(self::USER_INFO_SESSION);
          Session::del(self::USER_ROLE_SESSION);
          Session::del(self::LOGIN_MARK_SESSION_KEY);
      }
}