2011-09-25 104 views
-1

我正在处理一个根据kohana的HMVC结构处理cookie的程序,并且我发现Kohana有3种获取/设置cookie的方法。他们是Kohana的请求cookie(),响应cookie()和Cookie类之间的区别?

Request::current()->cookie()Response->cookie()和饼干类(Cookie::set(), get()

和PHP有一个本地setcookie()功能和$_COOKIE应对饼干了。

任何人都可以解释他们的区别,他们应该分别使用什么情况。

回答

0

Request::cookie()在呼叫之前Request::execute()在同一个对象上用于设置将要发送的Cookie(或者在初始请求的情况下已经发送)以及请求的其余部分。 Request::cookie()期间Request::execute()将取代$_COOKIE

Response::cookie()期间Request::execute()将取代setcookie()Response::cookie()Request::execute()用于获取由服务器设置的cookie。

Cookie帮助程序将对您的Cookie进行签名,并被HTTP_Header用于将cookie设置为初始请求对象中的Response对象(请参阅index.php中的Response::send_headers())。 如果您试图编写HMVC安全代码,您可能不想直接使用它。

+0

他们每个人是否有任何优势?假设一个请求会按顺序执行几个方法和子请求,并且一些方法/子请求会用问题中提到的不同方法更新一个“CommonKey”cookie,那么哪种方法最终会有效? – LazNiko