3.0版本起通过Composer引入duncan3dc/sessions库。
底层调用代码位于\Core\Func\CoreFunc.php 大概260行。
- /**
- * 调用session类库
- * @return \duncan3dc\Sessions\SessionInstance
- */
- public final static function session(){
- if(empty(self::$session)){
- $sessionid = self::loadConfig('SESSION_ID');
- self::$session = new \duncan3dc\Sessions\SessionInstance($sessionid);
- }
- return self::$session;
- }
除了控制器和模型有指定的调用方式,在其他地方外,可直接声明 \Core\Func\CoreFunc::session()->get('SESSION_NAME') 调用。
注意:在模板中需要调用SESSION,请直接使用 $this->session()->get('SESSION_NAME')
读取SESSION
读取session直接使用get方法。
- $this->session()->get('test'); //将返回预设名为test的值
写入SESSION
写入session直接使用set方法。
- $this->session()->set("user", "Mark");
- $this->session()->get("user"); # "Mark"
一次性SESSION
有时候我们需要设置一次性的变量,用完即弃。duncan3dc/sessions提供了这方面的支持。
setFlash():创建并写入一次性的session。
getFlash():读取session内容之后销毁内容。
- $result = $db->updateRecord(5);
- if ($result) {
- $session->setFlash("message", "The record was updated successfully");
- } else {
- $session->setFlash("message", "An error has occurred");
- }
- if ($message = $session->getFlash("message")) {
- echo "{$message}";
- }
其他操作
若您对该SESSION库有兴趣,或者需要了解更加详细的文档,可以直接访问:http://duncan3dc.github.io/sessions/usage/namespaces/
Tag : sessioncookie