public function testMigrate() { $session = new ElggSession(new Elgg_Http_MockSessionStorage()); $session->start(); $session->set('foo', 5); $id = $session->getId(); $this->assertTrue($session->migrate()); $this->assertTrue($session->has('foo')); $this->assertNotEquals($id, $session->getId()); $this->assertTrue($session->has('__elgg_session')); }
/** * Save the registers to the session * * The method of displaying these messages differs depending upon plugins and * viewtypes. The core default viewtype retrieves messages in * {@link views/default/page/shells/default.php} and displays messages as * javascript popups. * * Messages are stored as strings in the Elgg session as ['msg'][$register] array. * * @param RegisterSet $set The set of registers * @return void */ public function saveRegisters(RegisterSet $set) { $filter = function ($el) { return is_string($el) && $el !== ""; }; $data = []; foreach ($set as $prop => $values) { if (!is_array($values)) { continue; } $arr = array_filter($values, $filter); if ($arr) { $data[$prop] = array_values($arr); } } $this->session->set(self::SESSION_KEY, $data); }
/** * Save the registers to the session * * @param array $registers The message registers * @return void */ protected function saveRegisters(array $registers) { $this->session->set('msg', $registers); }