$ _SESSION ['mydata'] исчезает в МВт - PullRequest
0 голосов
/ 11 ноября 2018

Я пытаюсь понять, как работает MW 1.31.1. У меня есть следующий крючок:

$wgHooks['UserLoginComplete'][] = 'onUserLoginComplete';

function onUserLoginComplete(User &$user, &$inject_html, $direct){
      $_SESSION['mydata']  = 'some data';
}

Он в основном сохраняет некоторые данные в $ _SESSION, когда пользователь успешно аутентифицирован. Как я могу хранить $ _SESSION ['mydata'] в сеансе, пока я аутентифицируюсь.

Меня озадачивает то, что я во время входа отмечаю «Оставить меня в системе» и через несколько часов возвращаюсь на вики-сайт. Я все еще аутентифицировался в системе, но $ _SESSION ['mydata'] исчезает.

1 Ответ

0 голосов
/ 11 ноября 2018

Начиная с версии 1.27, когда был представлен SessionManager , MediaWiki выполняет свою собственную обработку сеансов. В зависимости от значения $wgPHPSessionHandling он либо полностью игнорирует сеансы PHP, либо пытается синхронизировать их с сеансами MediaWiki. Вместо этого используйте методы обработки сеанса MediaWiki:

SessionManager::getGlobalSession()->set( 'mydata', 'some data' );

Что касается данных, исчезающих из сеанса, они не предназначены для использования в качестве механизма постоянного хранения, и долгосрочное поведение полностью зависит от того, какой механизм хранения сконфигурирован для этого - проверьте $wgSessionCacheType и $wgObjectCacheSessionExpiry.

...