> On 02 11 2014, at 01:33, Rowan Collins <[email protected]> wrote:
>
> On 01/11/2014 22:24, Andrea Faulds wrote:
>> Perhaps it would be worth ditching any attempts to change setcookie() (just
>> keep it around for backwards-compatibility), and to instead add a new
>> function, function family, or indeed class for cookie handling. Some sort of
>> sane API which would allow you to do a, b, or c, and make it clear which you
>> wanted.
>>
>> Thoughts? Any idea what such an API might look like?
>
> That rather brings us back to this week's Hot Topic: HTTP response objects,
> pecl/http, and PSR-7.
>
> pecl/httpv2 has the http\Cookie class [1], which confusingly represents not a
> single cookie, but a whole set of cookies. Exactly how you attach this to a
> response is not really clear from the docs I can find.
>
It it’s confusing, the docs are not good enough, and I probably have to agree
here ;)
Anyway, http\Cookie can parse Cookie and Set-Cookie headers, though, looking at
the RFC that might have been a bad idea to implement it that way.
Cookies never have been a main area of interest to me, so there might be a lot
of room to improve in pecl/http.
Obviously, API for cookies is completely missing in the http\Env sub namespace,
probably because there was $_COOKIE and set_cookie(), which may have covered my
needs for it. Setting a cookie currently would mean just setting the
appropriate Set-Cookie header on an http\Env\Response instance.
- - - 8< - - -
$ php -r '$r = new http\Env\Response; \
$r->setHeader("Set-Cookie", \
((new http\Cookie("foo=bar"))->setExpires(strtotime("+1 day")))); \
$r->send(STDOUT);’
HTTP/1.1 200 OK
Set-Cookie: foo=bar; expires=Mon, 03 Nov 2014 10:21:43 GMT;
ETag: ""
- - - >8 - - -
> [1] http://devel-m6w6.rhcloud.com/mdref/http/Cookie
> <http://devel-m6w6.rhcloud.com/mdref/http/Cookie>
Cheers,
Mike