@phpcoder81

Как работать с сессиями в классе?

Решил я вынести сессионные переменные для работы с корзиной из класса. Сделал свойство и в него передаю данные сессии.
$cart = new Cart;
$cart->setProducts($_SESSION['cart']);

Внутри работать очень удобно, но не получается модифицировать сессии. То есть внутри класса, всё норм, но он никак не может изменить/удалить переменную $_SESSION['cart'], потому что я работаю со свойствами.

Как из этого положения выйти? Неужели работать с сессиями надо в самом классе, как с глобальным массивом?
  • Вопрос задан
  • 192 просмотра
Решения вопроса 1
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
Ну если уж решили придумать себе проблему и героически еще решить, то чего не дорешали-то?)

$_SESSION['cart'] = $cart->getProducts();

А так уж тогда либо какой-то полноценный сервис который работает с сессиями и только в нём $_SESSION используется, либо не страдать фигней как вы сделали.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@green_goo
Неужели работать с сессиями надо в самом классе, как с глобальным массивом?

А что не так?
Как из этого положения выйти?

Если очень хочется, то можно
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Сессию не рекомендуется втаскивать напрямую в класс.
1. Переменные сессии нужно передать (чтение/получение) как входные параметры при инициализации класса (через конструктор) или через классовый метод.
2. Заполнить параметры сессии (запись/обновление) - через return или любые другие выходные параметры.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы