Phalcon - 會話管理



會話是伺服器端的資訊儲存,有助於使用者與網站或 Web 應用程式進行互動。每個會話都由一個唯一的會話 ID 定義,該 ID 在瀏覽器每次發出 HTTP 請求時都會傳遞給 Web 伺服器。會話 ID 每次都與內部資料庫配對,以便檢索所有儲存的變數。

Phalcon 中的會話

Phalcon 使用會話元件,其中包括訪問會話資料的包裝器。

以下是 Phalcon 中的功能:

  • 會話資料可以與同一域上的其他元件隔離。

  • 根據應用程式的需求,可以使用會話介面卡更改會話值。

在 Phalcon 中啟動會話

所有會話活動都與在 Web 應用程式的/config資料夾內的Services.php檔案中宣告的介面卡檔案相關聯。

/** 
   * Start the session the first time some component requests the session service 
*/ 
$di->setShared('session', function () { 
   $session = new SessionAdapter(); 
   $session->start();  
   return $session; 
});

建立會話

步驟 1 - 建立一個會話控制器來例項化會話,以便可以適當地檢索資料。

Command Prompt

步驟 2 - 建立一個具有名稱和值的會話。

<?php  

class SessionController extends \Phalcon\Mvc\Controller { 
   public function indexAction() { 
      //Define a session variable 
      $this->session->set("user-name", "Omkar"); 
      
      //Check if the variable is defined 
      if ($this->session->has("user-name")) { 
         //Retrieve its value 
         $name = $this->session->get("user-name"); 
         echo($name); 
      } 
   } 
} 

以上程式碼產生以下輸出。

Code

刪除會話

可以在 Phalcon 中銷燬會話或取消設定會話中的一些變數值。

以下是取消設定會話中變數值的語法。

$this->session->remove(<variable-name>); 

如上例所示,在會話中建立的變數名為“data-content”,可以使用以下程式碼將其刪除。

public function removeAction() { 
   // Remove a session variable with associated session 
   $this->session->remove("data-content"); 
}
;

以下是銷燬整個會話的語法。

$this->session->destroy(); 
廣告