/** * @param \Silex\Application $app * * @return void */ public function boot(Application $app) { if (PHP_SAPI === 'cli') { return; } $this->client->setContainer($app['session']); $saveHandler = Config::get(SessionConstants::ZED_SESSION_SAVE_HANDLER); $savePath = $this->getSavePath($saveHandler); $sessionHelper = new SessionFactory(); switch ($saveHandler) { case SessionConstants::SESSION_HANDLER_COUCHBASE: $savePath = !empty($savePath) ? $savePath : null; $sessionHelper->registerCouchbaseSessionHandler($savePath); break; case SessionConstants::SESSION_HANDLER_MYSQL: $savePath = !empty($savePath) ? $savePath : null; $sessionHelper->registerMysqlSessionHandler($savePath); break; case SessionConstants::SESSION_HANDLER_REDIS: $savePath = !empty($savePath) ? $savePath : null; $sessionHelper->registerRedisSessionHandler($savePath); break; case SessionConstants::SESSION_HANDLER_FILE: $savePath = !empty($savePath) ? $savePath : null; $sessionHelper->registerFileSessionHandler($savePath); break; default: if (isset($saveHandler) && !empty($saveHandler)) { ini_set('session.save_handler', $saveHandler); } if (!empty($savePath)) { session_save_path($savePath); } } ini_set('session.auto_start', false); }