Недавно я начал создавать приложение с использованием Zendframework 2, у меня есть хороший опыт работы в ZF1, главная проблема, с которой я столкнулся здесь, с ZF2 - это сеансы.
Вот как я создаю контейнер сеанса.
use Zend\Session\Container;
//Создание контейнера сеанса: (ранее мы называли его пространством имен)
$session_user = new Container('user');
$session_user_errors = new Container('usererrors');
$session_user_shares = new Container('usershares');
Теперь, как и у меня есть несколько контейнеров,
Я мог бы очистить ключ от конкретного контейнера, такого как
//Получение значения из сеанса по ключу: (получить значение из пространства имен)
$email = $session_user->offsetGet('email');
//Значение параметра в сеансе: (заданное значение из пространства имен)
$session_user->offsetSet('username', 'abcd');
Теперь моя проблема - очистить весь контейнер, который установлен на нескольких уровнях моего приложения.
Если я попробую приведенный ниже код, он очистит все мои контейнеры сеансов.
$session_user = new Container('user');
$session_user->getManager()->getStorage()->clear();
Я хочу очистить только контейнер с именем "пользователь", который имеет много ключей (я не знаю, что все будет там в конце). Есть ли способ достичь этого.
Я знаю, что могу делать offsetunset на каждом ключе, но это не оптимальное решение, которое я чувствую.
Просьба, пожалуйста, предложить ли какой-либо альтернативный способ очистить конкретный контейнер сеанса.
ПРИМЕЧАНИЕ: - Я не использую ни один из сторонних модулей, таких как сеансы ZfcUser и Akrabat
Заранее благодарим за это сообщение.