/** * 构造self::$member */ protected function ini_member() { if (null === static::$member && isset($_SESSION['member_id']) && $_SESSION['member_id'] > 0) { $orm_member = new \ORM_Admin_Member_Finder(); static::$member = $orm_member->where('id', $_SESSION['member_id'])->find(null, true)->current(); } }
/** * On first session instance creation, sets up the driver and creates session. */ public function __construct($vars = null) { // This part only needs to be run once if (Session::$instance === null) { // Load config Session::$config = Core::config('session'); if (!isset(Session::$config['name']) || !preg_match('#^(?=.*[a-z])[a-z0-9_]++$#iD', Session::$config['name'])) { // Name the session, this will also be the name of the cookie Session::$config['name'] = 'PHPSESSINID'; } if (isset(Session::$config['driver']) && class_exists('Session_Driver_' . Session::$config['driver'], true)) { $driver_name = 'Session_Driver_' . Session::$config['driver']; if (isset(Session::$config['driver_config'])) { $this->driver = new $driver_name(Session::$config['driver_config']); } else { $this->driver = new $driver_name(); } } else { $this->driver = new Session_Driver_Default(); } if ($vars) { // Set the new data $this->set($vars); } if (!isset($_SESSION['_flash_session_'])) { $_SESSION['_flash_session_'] = array(); } Session::$flash =& $_SESSION['_flash_session_']; # 清理Flash Session $this->expire_flash(); $_SESSION['SID'] = $this->driver->session_id(); if (!isset($_SESSION['_last_actived_time_']) || TIME - 600 > $_SESSION['_last_actived_time_']) { # 更新最后活动时间 10分钟更新一次 $_SESSION['_last_actived_time_'] = TIME; } # 确保关闭前执行保存 Core::register_shutdown_function(array('Session', 'write_close')); Session::$instance = $this; if (null === Session::$member && isset($_SESSION['member_id']) && $_SESSION['member_id'] > 0) { $orm_member = new ORM_Admin_Member_Finder(); Session::$member = $orm_member->where('id', $_SESSION['member_id'])->find(null, true)->current(); } } }
/** * 根据用户名获取用户对象 * * @param string $username * @return Member */ public function get_by_username($username) { $orm_member = new \ORM_Admin_Member_Finder(); return $orm_member->where('username', $username)->find(null, true)->current(); }