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 中的会话管理。