上一篇文章講解「雜項-上傳」,本篇文章講解「雜項-Session」。
可以直接使用think\facade\Session類操作Session。
1. Session初始化
Session會在第一次調用Session類的時候按照session.php配置的參數自動初始化:
如果我們使用上述的session配置參數的話,無需任何操作就可以直接調用Session類的相關方法。
1)session.php配置文件初始化session
新建Index控制器,並新建index方法,在方法中設置session並輸出
預覽:
2)調用init方法初始化session
修改Index控制器的index方法,調用init方法初始化session:
預覽:
注意:1. 如果你沒有使用Session類進行Session操作的話,例如直接操作$_SESSION,必須使用上面的方式手動初始化或者直接調用session_start()方法進行session初始化。
2. 設置參數
默認支持的session設置參數包括:
注意:1. 如果做了session驅動擴展,可能有些參數不一定有效。
3. 基礎用法
1)賦值
在Index控制器中,新建valuation方法,並進行session賦值
注意:
賦值module作用域中module作用域(session前綴),在Index控制器的index方法中被初始化過,直接使用即可,如果沒有,可以自行初始化。
默認的session前綴為think,在config/session.php文件中默認設置:
2)判斷是否存在
修改Index控制器下的valuation方法:
預覽:
3)取值
修改Index控制器下的valuation方法:
預覽:
注意:1. 如果不存在,取值結果返回null。
4)刪除
修改Index控制器下的valuation方法:
預覽:
5)指定作用域
修改Index控制器下的valuation方法:
預覽:
6)取值並刪除
修改Index控制器下的valuation方法:
預覽:
注意:1. 如果不存在,pull方法返回null。
7)清空
修改Index控制器下的valuation方法:
預覽:
8)快閃記憶體數據,下次請求之前有效
①修改Index控制器下的valuation方法:
訪問valuation方法,預覽:
②在Index控制器中,新建test方法,並在方法中輸出快閃記憶體數據
訪問test方法,第一次訪問,預覽:
第二次訪問,預覽:
9)提前清除當前請求有效的數據
①Index控制器下的valuation方法不變,訪問valuation方法
②修改Index控制器下的test方法,使用flush方法清除當前請求的有效數據
訪問test方法,預覽:
注意:1. flush清除當前請求有效數據,對flash快閃記憶體數據有效,其他數據無效。2. flush方法清除的是在當前請求之前設置的快閃記憶體數據,與flush在同一方法內設置的,不能同時清除。3. flush方法的清除原則,可以查看flush源碼進行理解。
4. 二維數組
支持session的二維數組操作。
在Index控制器中,新建arrSession方法:
預覽:
5. 助手函數
系統也提供了助手函數session完成相同的功能。
在Index控制器中,新建helperFun方法,使用助手函數session:
預覽:
6. Session驅動
支持指定Session驅動,配置文件(config/session.php)如下:
注意:1. 'type' => 'redis',表示使用redis作為session類型。2. 目前內置支持使用redis、memcache和memcached作為session驅動類型。
ThinkPHP5連載為卓象程式設計師原創,轉載請聯繫卓象程式設計師
關注卓象程式設計師,定期發布技術文章
下一篇講解「雜項 - Cookie」