Я разрабатываю сайт Symfony 3.4 локально, используя Wamp64. Управление сеансами - это настройка Symfony 3.4 по умолчанию (в файлах). Единственное, что мой код специально добавляет в хранилище сеансов, - это единственная переменная, целое число.
Однако я могу воспроизвести проблему после просмотра нескольких страниц, на которых я получаю сообщение об ошибке:
Warning: session_start(): Failed to decode session object. Session has been destroyed
Это происходит только при выходе с определенных страниц (а они кажутся страницами с относительно большим количеством полей формы, включая 4 или 5 полей EntityType). Он действует так, как будто файл сеанса становится слишком большим (хотя я не нашел доказательств того, что существует ограничение на размер, размер файла составляет около 50 КБ) или поврежден данными в формах. Я нашел потоки, указывающие на то, что это может быть вызвано хранением необычных символов, но я не делаю ничего необычного с формами или правами в отношении наборов символов.
Изначально я хранил в сеансе полную сущность. Исследования показали, что это может быть проблемой, поэтому были переработаны вещи, чтобы хранить только идентификатор объекта. Без изменений. Я нашел здесь потоки, обвиняющие проблему в сборке мусора, но никакие изменения, которые я там не внес, не имели никакого значения. У меня не возникает этой проблемы на сервере развертывания, по крайней мере, пока.
Текст сообщения об ошибке, похоже, исходит от самого PHP (строки нет в файлах сценария symfony).
Любые идеи? Или предложения по отладке?
Обновление: я обнаружил, что проблема действительно возникает при сохранении сложной сущности в сеансе (поиск по какой-то причине не смог ее найти). Так что забудь. Мне просто нужно найти другой способ сделать это.
вы используете fosuserbundle? или покажите мне свой config.yml, возможно, его стоит использовать!




Предложения: forum.phalconphp.com/discussion/16493/… и osticket.com/forum/discussion/90909/…