По старинке для уставновки cookie всегда пользовался setcookie, но так как сейчас использую Zend Framework 1.12 то решил воспользоваться его методами. А именно так как они рекомендуют в мануале:
- $this->getResponse()->setRawHeader(new Zend_Http_Header_SetCookie(
- 'foo', 'bar', NULL, '/', 'example.com', false, true
- ));
Все бы ничего, но позже у меня возникла ошибка и только после действительного долгого поиска я обнаружил что проблема в том, что такой метод отправки cookie перезатирает все остальные куки которые уже установила страница. Дальше я нарыл, что метод setRawHeader использует встроенную функцию php - header для установки cookie:
header('Set-Cookie: ...');
И собственно эта функция и затирает все что уже было отослано.
Погуглив я нашел, что я не один - http://stackoverflow.com/questions/5499476/is-it-ok-to-send-cookie-headers-directly-with-header-calls (см после: EDIT: AN IMPORTANT NOTICE)
После этого пришлось вернуть код обратно к setcookie.
Но меня мучает вопрос - Что я упускаю в Zend Framework? Неужели Zend не знает об этом?