Пытаясь перейти с Symfony 2.0 на 2.1, я обнаружил интересную проблему.
Я не могу получить собственный идентификатор сеанса, даже в простой, только что загруженной копии Symfony 2.1.
/**
* @Route("/sess")
*/
public function sessionAction()
{
$session = $this->getRequest()->getSession();
return new Response($session->getId());
}
Что-то там существенно изменилось?
1 ответ
Взгляните на этот документ (в разделе app / config / config.yml раздел)
В Symfony 2.1 сессия всегда запускается по запросу. Поэтому я бы сказал, что то, что вы видите, является нормальным поведением. Вам необходимо явно запустить сеанс, прежде чем вы сможете получить идентификатор сеанса. Я не проверял, но, возможно, установка первой переменной также запускает сеанс, потому что она работает после вызова set ().
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.
$session->start();
перед возвратомResponse()
. Для меня это как-то странно - в 2.0 сессия запускалась автоматически (я думаю).start()
и использую$session->set()
, он будет работать нормально. Проблема в том, что я не хочу устанавливать какие-либо переменные сеанса, просто получаю текущий session_id (скорее всего, без вызова методаstart()
.