Session 的配置
可以在 config.php(可以是應用公用的 config.php 或子產品的 config.php)中對 Session 進行配置,例如:
<?php
return array(
//'配置項'=>'配置值'
'SESSION_AUTO_START' =>false,//系統不自動啟動Session
'SESSION_OPTIONS'=>array(
'use_trans_sid'=>1,
'expire'=>3600,//設定過期時間session.gc_maxlifetime的值為1小時
)
);
其中預設情況下,初始化之後系統會自動啟動 Session,也就是 session.auto_start = 1。可以取消 Session 的自動啟動,因為雖然如果開啟了此選項,每次使用 Session 的時候無需調用 session_start(),但是由于不能将對象放入 Session,因為類定義必須在啟動 Session 之前加載。閉自動啟動後可以項目的公共檔案或者在控制器中通過手動調用 session_start() 或者 session('[start]') 啟動 session。

系統還提供了 Session 管理和操作的完善支援,全部操作可以通過一個内置的 session 函數完成,該函數可以完成 Session 的設定、擷取、删除和管理操作。
如果 session 方法的第一個參數傳入數組則表示進行 session 初始化設定,上面通過在 config.php 中進行的配置用内置的 session 函數可以達到相同的效果:
session(array('use_trans_sid'=>1,'expire'=>3600));
複制
注意:使用該種方式設定 Session 參數時,需要把該方法寫在 session_start() 函數之前(如果 Session 沒有設定為自動開啟)。
Session 的使用
系統提供了Session 管理和操作的完善支援,全部操作可以通過一個内置的 session 函數完成,該函數可以完成Session的設定、擷取、删除和管理操作。
session 函數位于 \ThinkPHP\Conmon\functions.php 内,源碼: