「ThinkPHP5開發連載80」tp5連載雜項之Session

2021-01-13 卓象程式設計師

上一篇文章講解「雜項-上傳」,本篇文章講解「雜項-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」

相關焦點