/** * Init session method * * @return Enlight_Components_Session_Namespace */ protected function initSession() { $sessionOptions = $this->Application()->getOption('session', array()); if (!empty($sessionOptions['unitTestEnabled'])) { Enlight_Components_Session::$_unitTestEnabled = true; } unset($sessionOptions['unitTestEnabled']); if (Enlight_Components_Session::isStarted()) { Enlight_Components_Session::writeClose(); } /** @var $shop \Shopware\Models\Shop\Shop */ $shop = $this->getResource('Shop'); $name = 'session-' . $shop->getId(); //$path = rtrim($shop->getBasePath(), '/') . '/'; //$host = $shop->getHost(); //$host = $host === 'localhost' ? null : $host; $sessionOptions['name'] = $name; //$sessionOptions['cookie_path'] = $path; //$sessionOptions['cookie_domain'] = $host; if (!isset($sessionOptions['save_handler']) || $sessionOptions['save_handler'] == 'db') { $config_save_handler = array( 'db' => $this->getResource('Db'), 'name' => 's_core_sessions', 'primary' => 'id', 'modifiedColumn' => 'modified', 'dataColumn' => 'data', 'lifetimeColumn' => 'expiry' ); Enlight_Components_Session::setSaveHandler( new Enlight_Components_Session_SaveHandler_DbTable($config_save_handler) ); unset($sessionOptions['save_handler']); } Enlight_Components_Session::start($sessionOptions); $this->registerResource('SessionID', Enlight_Components_Session::getId()); $namespace = new Enlight_Components_Session_Namespace('Shopware'); return $namespace; }
/** * @param Container $container * @return \Enlight_Components_Session_Namespace */ public function factory(Container $container) { $sessionOptions = Shopware()->getOption('session', array()); if (!empty($sessionOptions['unitTestEnabled'])) { \Enlight_Components_Session::$_unitTestEnabled = true; } unset($sessionOptions['unitTestEnabled']); if (\Enlight_Components_Session::isStarted()) { \Enlight_Components_Session::writeClose(); } /** @var $shop \Shopware\Models\Shop\Shop */ $shop = $container->get('Shop'); $name = 'session-' . $shop->getId(); $sessionOptions['name'] = $name; if (!isset($sessionOptions['save_handler']) || $sessionOptions['save_handler'] == 'db') { $config_save_handler = array('db' => $container->get('Db'), 'name' => 's_core_sessions', 'primary' => 'id', 'modifiedColumn' => 'modified', 'dataColumn' => 'data', 'lifetimeColumn' => 'expiry'); \Enlight_Components_Session::setSaveHandler(new \Enlight_Components_Session_SaveHandler_DbTable($config_save_handler)); unset($sessionOptions['save_handler']); } \Enlight_Components_Session::start($sessionOptions); $container->set('SessionID', \Enlight_Components_Session::getId()); $namespace = new \Enlight_Components_Session_Namespace('Shopware'); $namespace->offsetSet('sessionId', \Enlight_Components_Session::getId()); return $namespace; }