Zend 框架 - 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 标头、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 相同,但它再次提取并添加到给定 URI 的请求对象中。

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

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

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