3.0版本起通过Composer引入duncan3dc/sessions库。

底层调用代码位于\Core\Func\CoreFunc.php 大概260行。

  1. /**
  2. * 调用session类库
  3. * @return \duncan3dc\Sessions\SessionInstance
  4. */
  5. public final static function session(){
  6. if(empty(self::$session)){
  7. $sessionid = self::loadConfig('SESSION_ID');
  8. self::$session = new \duncan3dc\Sessions\SessionInstance($sessionid);
  9. }
  10. return self::$session;
  11. }

除了控制器和模型有指定的调用方式,在其他地方外,可直接声明 \Core\Func\CoreFunc::session()->get('SESSION_NAME') 调用。

注意:在模板中需要调用SESSION,请直接使用 $this->session()->get('SESSION_NAME')

读取SESSION

读取session直接使用get方法。

  1. $this->session()->get('test'); //将返回预设名为test的值

写入SESSION

写入session直接使用set方法。

  1. $this->session()->set("user", "Mark");
  2.  
  3. $this->session()->get("user"); # "Mark"

一次性SESSION

有时候我们需要设置一次性的变量,用完即弃。duncan3dc/sessions提供了这方面的支持。

setFlash():创建并写入一次性的session。

getFlash():读取session内容之后销毁内容。

  1. $result = $db->updateRecord(5);
  2. if ($result) {
  3. $session->setFlash("message", "The record was updated successfully");
  4. } else {
  5. $session->setFlash("message", "An error has occurred");
  6. }
  7.  
  8. if ($message = $session->getFlash("message")) {
  9. echo "{$message}";
  10. }

其他操作

若您对该SESSION库有兴趣,或者需要了解更加详细的文档,可以直接访问:http://duncan3dc.github.io/sessions/usage/namespaces/

Tag : sessioncookie