JSession 物件

在 Joomla! 中,避免使用 PHP 的 $_SESSION 變數以及相關的函式,以下為取得 JSession 物件參考的方式:

//取得 JSession 物件參考的方式

$session =& JFactory::getSession();

設定 Session Value

設定 Session Value 方式如下:

$session->set("usrName", “Leon”);

當然不只可以存 string or int 等型態的值,亦可儲存物件:

//將物件序列化後儲存到 session 中

$value = new JObject();

$session->set("aJObject", serialize($value));

//反序列化 session 的值

var_dump(unserialize($session->get("aJObject")));

PS. set() function 可加上第三個 Namespace 參數作分辨用

設定 Session Value 還有另外一種方式,就是透過 JApplication 的 setUserState() function,以下為範例:

//取得 JApplication 物件

$app =& JFactory::getApplication();

//可透過比較詳細的 Namespace 參數來區別 & 設定資料

$app->setUserState("com_myComponent.tw.org.myDomain", "Value@JApplication");

取得 Session Value

看到 Session 設定的方式,想當然爾,取得 Session Value 的方式應該也不會偏離太遠:

$session =& JFactory::getSession();

$sessionVal = $session->get("usrName");

$sessionVal = $session->get("usrName", “defaultUserName”);

$sessionVal = $session->get("usrName", “defaultUserName”, “Namespace”);

$app =& JFactory::getApplication();

$sessionVal = $app->getUserState(“com_myComponent.tw.org.myDomain”);