コード例 #1
0
ファイル: Bootstrap.php プロジェクト: nhp/shopware-4
    /**
     * 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;
    }
コード例 #2
-1
ファイル: Session.php プロジェクト: ClaudioThomas/shopware-4
 /**
  * @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;
 }