2007年5月15日 星期二

CakePHP使用手冊-Session元件(Session Component)

轉貼自 http://www.ezluk.org/

Session元件(Session Component)


第一節



Cake內Session的儲存參數


Cake內建三種方式存放session資料:放在暫存檔,使用PHP預設機制,或存放在資料庫,預設使用PHP預設機制。
如果想改成使用暫存檔或資料庫,請編輯核心設定檔:/app/config/core.php
依需要可以把CAKE_SESSION_SAVE變數改成'cake','php'或'database'三者之一。



core.php Session 設定


/**

 * CakePHP includes 3 types of session saves

 * database or file. Set this to your preferred method.

 * If you want to use your own save handler place it in

 * app/config/name.php DO NOT USE file or database as the name.

 * and use just the name portion below.

 *

 * Setting this to 'cake' will save files to /cakedistro/tmp directory

 * Setting it to 'php' will use the php default save path

 * Setting it to 'database' will use the database

 *

 *

 */

define('CAKE_SESSION_SAVE', 'php');


為了要將session資料存在資料庫,必須在資料庫內建立資料表。
資料表的schema放在/app/config/sql/sessions.sql內。



第二節



使用Cake的Session Component


Cake的session component用來與session資料互動。
它包含了對session資料最基本的讀寫動作,還包含錯誤訊息和接受訊息(如"Your data has been saved")等。
在所有的controller裡預設是可以使用Session component的。





  • check

  • string $name



檢查$name是否已經存於session裡。





  • del

  • string $name




  • delete

  • string $name



刪除$name這個session變數。





  • error




傳回Session component內所發生最後一個錯,常用於除錯。





  • flash

  • string $key = 'flash'



傳回session內用setFlash()所設定的最後一個訊息。
如果有指定$key,則會選用以該鍵存放的訊息中最近的一條。





  • read

  • string $name



傳回名為$name的session變數。





  • renew




建立新的session ID,重新目前使用中的session,刪除舊的,並將刪session的資料傳給新的。





  • setFlash

  • string $flashMessage

  • string $layout =
    'default'


  • array $params

  • string $key = 'flash'



將$flashMessage寫到session內(稍後可由flash()取得)。


如果$layout設成'default',訊息會以'<div class="message">'.$flashMessage.'</div>'型式儲存。
如果$layout設成'',訊息會原封不動的被存放。
如果設成其他值,則使用$layout指定的方式存放。


$params是留著未來使用的,目前沒有作用。


$key則可以讓這個訊息以$key鍵存放,呼叫flash()時可依不同鍵取回訊息。





  • valid




如果session有效則傳回true。
最好在read()前使用,以確認讀得到資料。





  • write

  • string $name

  • mixed $value



將名稱為$name,值為$value的session變數存放於目前的session中。


沒有留言:

網誌存檔

關於我自己

Aspire freedom , Hope to do Soming make self complete ~