Zend Framework - Cookie 管理

Cookie 是 Web 应用程序中非常重要的概念。它提供了在有限时间内保留用户数据(通常是浏览器本身中的一小段信息)的选项。

Cookie 用于维护 Web 应用程序的状态。Zend 框架在 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 Header, Set-Cookie 包含在其响应对象中,并将其发送到 HTTP 客户端。HTTP 客户端将从 http 响应中提取 Cookie,并在后续请求中将其作为相同的 HTTP Header 重新发送。通常,每个 cookie 都会映射到一个域和该域的一个路径。

Cookies 类中可用的方法如下 −

  • addCookie(uri) − 用于将 cookie 添加到给定 URI 的请求对象中。

  • getCookie(cookieName, $cookieForm) − 用于获取给定 URI $uri 中可用的 cookie $cookieName。第三个参数是 cookie 的返回方式,可以是字符串或数组。

  • fromResponse(uri) − 用于从给定 URI 的响应对象中提取 cookie。

  • addCookiesFromResponse −它与 fromResponse 相同,但它将其提取并再次添加到给定 URI 的请求对象中。

  • isEmpty() − 它用于查找给定的 Cookie 对象是否有任何 cookie。

  • reset() − 它用于清除给定 URI 中的所有 cookie。

在下一章中,我们将讨论 Zend Framework 中的会话管理。