本文執行個體講述了CakePHP架構Session設定方法。分享給大家供大家參考,具體如下:
CakePHP Session 儲存選項
CakePHP提供給使用者了3種Session資料儲存方式:
1. CakePHP安裝目下的臨時檔案;
2. 採用PHP的預設機制;
3. 或者序列化到資料庫中.
對應的設定在core.php中分別為:
define('CAKE_SESSION_SAVE', 'php');# 設定為 'cake',儲存session到 /cakedistro/tmp目錄# 設定為 'php',採用PHP的預設路徑# 設定為 'database',
預設採用PHP的機制.
如果選擇在資料庫中儲存,需要在資料庫中建立一張表,在/app/config/sql/sessions.sql有建立資料庫的sql指令碼.
無論選擇哪種Session儲存方式,CakePHP的組件方法操作基本一致:
CakePHP Session Component用來與Session進行互動:包括基本的Session讀寫,通過Session來提示錯誤、發出提示訊息等等.
Session Component在所有 Cake controller 中預設可用.
check(string $name);
檢查Session中是否已有$name為索引值的資料項目.
del(string $name);
delete(string $name);
刪除$name 指定的 Session 變數。
error
返回最近由 Cake Session Component 產生的錯誤,常用於調試。
flash(string $key='flash');
返回最後一條Session中用 setFlash() 設定的訊息。如果 $key 已設定,將返回最近儲存於其中的訊息.
read(string $name);
返回 $name 變數值。
renew
通過建立新的seesion ID,刪除原有的ID,將原有Session中資訊更新到新的Session中。
setFlash(string $flashMessage, string $layout='default', array $params, string $key='flash');
將$flashMessage 中的資訊寫入Session(供之後的flash()方法來擷取)。
如果 $leyout 設定為 “default”,該訊息被儲存為 '<p class="message">'.$flashMessage.'</p>'。如果$layout 設定為 '',該訊息將按原樣儲存。如果 $layout 為其他值,該訊息以 $layout 所指定的格式儲存在 Cake view裡。
$params 參數會在未來版本中賦予功能。
$key 允許在鍵下儲存提示訊息,flash() 是基於鍵來讀取訊息的。
valid當Session有效時返回true,最好在read()操作前用它來確定你要訪問的會話是否確實有效.
write(string $name, mixed $value);
將變數 $name,$value寫入會話.