Symfony Cookies和会话管理 Symfony Ajax控件 Symfony国际化 Symfony HttpFoundation组件以面向对象的方式提供cookie和会话管理。 Cookie 提供客户端数据存储,并且仅支持少量数据。通常,每个域为2KB,取决于浏览器。 会话 提供服务器端数据存储并支持大量数据。让我们看看如何在Symfony Web应用程序中创建cookie和会话。 Cookie Symfony提供了Cookie类来创建一个cookie项目。让我们创建一个cookie颜色,该颜色在24小时内过期,价值为 蓝色 。cookie类的构造函数参数如下。 名称(类型:字符串) - cookie名称 value(type:string) - cookie值 过期(类型:整数/字符串/日期时间) - 过期信息 path(type:string) - cookie可用的服务器路径 域(类型:字符串) - Cookie可用的域地址 secure(类型:布尔值) - cookie是否需要以HTTPS连接传输 httpOnly(类型:布尔值) - cookie是否仅在HTTP协议中可用 use Symfony\Component\HttpFoundation\Cookie; $cookie = new Cookie('color', 'green', strtotime('tomorrow'), '/', 'somedomain.com', true, true); Symfony还提供了以下基于字符串的cookie创建选项。 $cookie = Cookie::fromString('color = green; expires = Web, 4-May-2017 18:00:00 +0100; path=/; domain = somedomain.com; secure; httponly'); 现在,创建的cookie需要按照如下方式附加到http响应对象的标头。 $response->headers->setCookie($cookie); 要获取cookie,我们可以使用Request对象,如下所示。 $cookie = $request->cookie->get('color'); 这里, request- > cookie是 PropertyBag 类型的,我们可以使用PropertyBag方法来操作它。 会议 Symfony提供了一个实现SessionInterface接口的Session类。重要的会话API如下, 开始 - 开始会话。 Session $session = new Session(); $session->start(); 无效 - 清除所有会话数据并重新生成会话ID。 set - 使用密钥在会话中存储数据。 $session->set('key', 'value'); 我们可以使用会话值中的任何数据,以简单的整数表示复杂的对象。 get - 使用密钥从会话中获取数据。 $val = $session->get('key'); 删除 - 从会话中删除密钥。 清除 - 删除会话数据。 FlashBag 会话提供了另一个称为 FlashBag的 有用功能。它是仅在页面重定向期间保持数据的会话内的特殊容器。这在http重定向中很有用。在重定向到页面之前,可以将数据保存在FlashBag中而不是正常会话容器中,并且保存的数据将在下一个请求(重定向页面)中可用。然后,数据将自动失效。 $session->getFlashBag()->add('key', 'value'); $session->getFlashBag()->get('key'); Symfony Ajax控件 Symfony国际化