public function initSession(ServiceManager $serviceManager, DbAdapter $dbAdapter)
{
$coreConfig = $serviceManager->get('CoreConfig');
$sessionConfig = new SessionConfig();
$sessionConfig->setStorageOption('gc_probability', 1);
$sessionConfig->setStorageOption('gc_divisor', 100);
$sessionConfig->setStorageOption('save_path', $coreConfig->getValue('session_path'));
$sessionConfig->setStorageOption('gc_maxlifetime', $coreConfig->getValue('session_lifetime'));
$sessionConfig->setStorageOption('cookie_path', $coreConfig->getValue('cookie_path'));
$sessionConfig->setStorageOption('cookie_domain', $coreConfig->getValue('cookie_domain'));
$sessionManager = new SessionManager($sessionConfig);
SessionContainer::setDefaultManager($sessionManager);
if ($coreConfig->getValue('session_handler') == CoreConfig::SESSION_DATABASE) {
$tablegatewayConfig = new DbTableGatewayOptions(array('idColumn' => 'id', 'nameColumn' => 'name', 'modifiedColumn' => 'updated_at', 'lifetimeColumn' => 'lifetime', 'dataColumn' => 'data'));
$sessionTable = new SessionTableGateway(new TableGateway('core_session', $dbAdapter), $tablegatewayConfig);
$sessionManager->setSaveHandler($sessionTable);
}
$sessionManager->start();
}