2016-10-24 7 views
0

Когда я выхожу из cop1 приложение (проект), если я использовал $this->session->destroy: он уничтожил все два сеанса приложений (два приложения выходят из системы), но если я использовал remove, он работает хорошо, например. $this->session->remove("user"). Потому что его единственный уничтоженный относительный пользователь сеанса, таким образом, только cop1 - это выход из системы. Мне нужно, чтобы все текущие (cop1) сеансы не только переменная сеанса user? Как я могу справиться с этим?Удаление текущего уникального идентификатора сеанса с помощью phalcon?

локальный/COP1/..

$di->set('session', function() { 
    $session = new SessionAdapter(); 
    $session->setOptions(['uniqueId'=> "cop1_"]); 
    $session->start();  
    return $session; 
}); 

локальный/COP2/..

$di->set('session', function() { 
    $session = new SessionAdapter(); 
    $session->setOptions(['uniqueId'=> "cop2_"]); 
    $session->start();  
    return $session; 
}); 

ответ

2

Вы пробовали использовать Session Bags, в дополнение к обычной сессии?

Этот компонент помогает разделить данные сеанса на «пространства имен». Работая таким образом, вы можете легко создавать группы переменных сеанса в приложении. Только устанавливая переменные в «сумке», он автоматически сохраняется в сеансе.

Всякий раз, когда кто-то входит в ваше приложение вы создаете Сумку Session:

$sessionBag = new \Phalcon\Session\Bag('user'); 
$sessionBag->set('key', 'value'); 

И если вы хотите выйти из системы вы:

$sessionBag->destroy(); 
-1

Я не могу попробовать с session bag, потому что мой в текущем проекте так много модулей и сеансов, поэтому у меня нет времени для замены кодов. Теперь моя проблема решена session_name, но я не знаю, хорошо ли это? Надеюсь, полезным для некоторых, как я ...

session_name позволяет дать каждому приложению [тот же домен] другой сеанс.

локальный/COP1/..

$di->set('session', function() { 
    $session = new SessionAdapter(); 
    $session->setOptions(['uniqueId'=> "cop1_"]); 
    session_name("cop1"); 
    $session->start();  
    return $session; 
}); 

локальный/COP2/..

$di->set('session', function() { 
    $session = new SessionAdapter(); 
    $session->setOptions(['uniqueId'=> "cop2_"]); 
    session_name("cop2"); 
    $session->start();  
    return $session; 
});