Eva\EvaEngine\Engine::diSession PHP Method

diSession() public method

public diSession ( )
    public function diSession()
    {
        $adapterMapping = array('files' => 'Phalcon\\Session\\Adapter\\Files', 'database' => 'Phalcon\\Session\\Adapter\\Database', 'memcache' => 'Phalcon\\Session\\Adapter\\Memcache', 'libmemcached' => 'Eva\\EvaEngine\\Session\\Adapter\\Libmemcached', 'mongo' => 'Phalcon\\Session\\Adapter\\Mongo', 'redis' => 'Phalcon\\Session\\Adapter\\Redis', 'handlersocket' => 'Phalcon\\Session\\Adapter\\HandlerSocket');
        $config = $this->getDI()->getConfig();
        $adapterKey = $config->session->adapter;
        $adapterKey = false === strpos($adapterKey, '\\') ? strtolower($adapterKey) : $adapterKey;
        $sessionClass = empty($adapterMapping[$adapterKey]) ? $adapterKey : $adapterMapping[$adapterKey];
        if (false === class_exists($sessionClass)) {
            throw new Exception\RuntimeException(sprintf('No session adapter found by %s', $sessionClass));
        }
        if (!empty($config->session->session_name)) {
            session_name($config->session->session_name);
        }
        if (!empty($config->session->cookie_params)) {
            $cookie_params = $config->session->cookie_params;
            session_set_cookie_params(@$cookie_params->lifetime, @$cookie_params->path, @$cookie_params->domain, @$cookie_params->secure, @$cookie_params->httponly);
        }
        $session = new $sessionClass(array_merge(array('uniqueId' => $this->getAppName()), $config->session->options->toArray()));
        if (!$session->isStarted()) {
            //NOTICE: Get php warning here, not found reason
            @$session->start();
        }
        return $session;
    }