Zend Framework - Cookie 管理



Cookie 在 Web 應用中是一個非常重要的概念。它提供了一個選項,可以在瀏覽器中持久儲存使用者資料,通常是一小段資訊,並且僅儲存有限的時間。

Cookie 用於維護 Web 應用的狀態。Zend Framework 在 **zend-http** 元件中提供了一個 Cookie 模組。這個 zend-http 提供了 HTTP 抽象及其實現。

安裝 HTTP 元件

可以使用下面的程式碼中指定的 **Composer** 輕鬆安裝 HTTP 元件。

composer require zendframework/zend-http 

概念

zend-http 提供了 **Zend\Http\Cookies** 類來管理 Cookie。它與 **Zend\Http\Client** 類一起使用,後者用於向 Web 伺服器傳送請求。Cookie 可以像下面程式碼中所示那樣初始化:

use Zend\Http\Cookies  
$c = new Cookies(); 

當 HTTP 客戶端 (Zend\Http\Client) 首次向 Web 伺服器傳送 URI 請求時,它沒有任何 Cookie。一旦 Web 伺服器收到請求,它會在其響應物件中包含 Cookie 作為 **HTTP 頭部,Set-Cookie** 並將其傳送到 HTTP 客戶端。HTTP 客戶端將從 HTTP 響應中提取 Cookie,並在後續請求中將其作為相同的 HTTP 頭部重新發送。通常,每個 Cookie 將對映到一個域和該域的路徑。

**Cookies** 類中可用的方法如下:

  • **addCookie(uri)** - 用於將 Cookie 新增到給定 URI 的請求物件中。

  • **getCookie(cookieName, $cookieForm)** - 用於獲取給定 URI **$uri** 中可用的 Cookie,$cookieName。第三個引數是 Cookie 的返回方式,字串或陣列。

  • **fromResponse(uri)** - 用於從給定 URI 的響應物件中提取 Cookie。

  • **addCookiesFromResponse** - 與 fromResponse 相同,但它會再次提取並將 Cookie 新增到給定 URI 的請求物件中。

  • **isEmpty()** - 用於查詢給定的 **Cookie** 物件是否包含任何 Cookie。

  • **reset()** - 用於清除給定 URI 中的所有 Cookie。

在下一章中,我們將討論 Zend Framework 中的會話管理。

廣告
© . All rights reserved.