public function __construct(HttpRequestInterface $request, HttpResponseInterface $response) { $this->request = $request; $this->response = $response; $this->doctrine_em = \Clansuite\CMS::getEntityManager(); }
/** * Session Garbage Collector * * Removes the current session, if: * a) gc probability is reached (ini_set) * b) time() is reached (DB has timestamp stored, that is time() + expiration ) * @see session.gc_divisor 100 * @see session.gc_maxlifetime 1800 = 30*60 * @see session.gc_probability 1 * @usage execution rate 1/100 (session.gc_probability/session.gc_divisor) * * @param int session life time (mins) * @return boolean */ public function session_gc($maxlifetime = 30) { if ($maxlifetime == 0) { return; } /** * Determine expiration time of the session * * $maxlifetime is a minute time value * its fetched from $config['session']['session_expire_time'] * $sessionLifetime is in seconds */ $sessionlifetime = $maxlifetime * 60; $expire_time = time() + $sessionlifetime; $em = \Clansuite\CMS::getEntityManager(); $query = $em->createQuery('DELETE \\Entities\\Session s WHERE s.session_name = :name AND s.session_starttime < :time'); $query->setParameters(array('name' => self::SESSION_NAME, 'time' => (int) $expire_time)); $query->execute(); return true; }