小編給大家分享一下ThinkPHP6.0中Session和Cookie機(jī)制有什么變化,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
我們注重客戶提出的每個(gè)要求,我們充分考慮每一個(gè)細(xì)節(jié),我們積極的做好成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)服務(wù),我們努力開拓更好的視野,通過不懈的努力,成都創(chuàng)新互聯(lián)公司贏得了業(yè)內(nèi)的良好聲譽(yù),這一切,也不斷的激勵(lì)著我們更好的服務(wù)客戶。 主要業(yè)務(wù):網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)站設(shè)計(jì),微信小程序,網(wǎng)站開發(fā),技術(shù)開發(fā)實(shí)力,DIV+CSS,PHP及ASP,ASP.Net,SQL數(shù)據(jù)庫的技術(shù)開發(fā)工程師。Session
新的Session機(jī)制不依賴PHP內(nèi)置的Session會(huì)話機(jī)制,完全獨(dú)立實(shí)現(xiàn),優(yōu)勢在于可以兼容任何的運(yùn)行環(huán)境,而且配置參數(shù)也大為簡化。
新版你不能再使用$_SESSION或者任何php內(nèi)置的session函數(shù)操作Session,必須通過think\Session類或者think\facade\Session靜態(tài)代理類操作Session數(shù)據(jù)。
Session對(duì)于很多API接口應(yīng)用來說,不是必須的,而隨著前后端分離的應(yīng)用架構(gòu)設(shè)計(jì)越來越多,因此6.0的Session默認(rèn)是關(guān)閉的,系統(tǒng)把Session相關(guān)的功能設(shè)計(jì)成一個(gè)獨(dú)立的中間件,如果你需要使用Session可以單獨(dú)在應(yīng)用的中間件定義文件中開啟。
默認(rèn)安裝后,在app目錄下的middleware.php中間件定義文件中,對(duì)可能需要使用的系統(tǒng)中間件預(yù)置了注釋,你可以直接取消注釋,加上:
// Session初始化 'think\\middleware\\SessionInit',
該中間件的作用主要是初始化SessionId,并注入當(dāng)前的請(qǐng)求對(duì)象。初始化的時(shí)候會(huì)自動(dòng)讀取config目錄下的session.php配置。
默認(rèn)使用文件的方式保存Session數(shù)據(jù),支持使用redis、memcache以及memcached。
內(nèi)置的Session驅(qū)動(dòng)默認(rèn)配置下,都是支持跨應(yīng)用讀取Session數(shù)據(jù)的。如果你需要區(qū)分不同的應(yīng)用,保持各個(gè)應(yīng)用的Session數(shù)據(jù)獨(dú)立,可以在應(yīng)用的session配置文件中設(shè)置prefix參數(shù),例如:
'prefix' => 'admin',
并且為了防止Session數(shù)據(jù)過多,文件方式寫入Session數(shù)據(jù)的時(shí)候支持垃圾回收機(jī)制??梢耘渲胓c_divisor和gc_maxlifetime兩個(gè)參數(shù)來設(shè)置GC回收。
Session數(shù)據(jù)會(huì)在當(dāng)前請(qǐng)求結(jié)束后,自動(dòng)寫入,一般只會(huì)寫入一次。Session數(shù)據(jù)寫入之前會(huì)首先進(jìn)行序列化,默認(rèn)的序列化方法是serialize/unserialize,你可以在session配置文件中設(shè)置serialize參數(shù)(數(shù)組)來改變默認(rèn)的序列化機(jī)制,例如:
'serialize' => ['json_encode', 'json_decode'],
Session類本身的用法和之前版本基本一致,增加了push方法用于追加一個(gè)session數(shù)組。
Cookie
Cookie的存取機(jī)制是分開設(shè)計(jì)的,讀取操作是通過$_COOKIE讀取,寫入則通過可擴(kuò)展的方式滿足不同運(yùn)行環(huán)境的Cookie寫入要求。Cookie數(shù)據(jù)的寫入操作也是在當(dāng)前請(qǐng)求發(fā)送響應(yīng)數(shù)據(jù)之前統(tǒng)一寫入。
但在實(shí)際使用中,Cookie的用法和之前類似,區(qū)別在于不再支持前綴配置和清空操作。
看完了這篇文章,相信你對(duì)“ThinkPHP6.0中Session和Cookie機(jī)制有什么變化”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!