/** * cleanup old sessions files => needed only for filesystems based sessions */ public function cleanupSessions() { $config = Tinebase_Core::getConfig(); $backendType = $config->session && $config->session->backend ? ucfirst($config->session->backend) : 'File'; if (strtolower($backendType) == 'file') { $maxLifeTime = $config->session && $config->session->lifetime ? $config->session->lifetime : 86400; $path = Tinebase_Session_Abstract::getSessionDir(); $unlinked = 0; try { $dir = new DirectoryIterator($path); } catch (Exception $e) { if (Tinebase_Core::isLogLevel(Zend_Log::NOTICE)) { Tinebase_Core::getLogger()->notice(__METHOD__ . '::' . __LINE__ . " Could not cleanup sessions"); } Tinebase_Exception::log($e); return; } foreach ($dir as $fileinfo) { if (!$fileinfo->isDot() && !$fileinfo->isLink() && $fileinfo->isFile()) { if ($fileinfo->getMTime() < Tinebase_DateTime::now()->getTimestamp() - $maxLifeTime) { unlink($fileinfo->getPathname()); $unlinked++; } } } if (Tinebase_Core::isLogLevel(Zend_Log::INFO)) { Tinebase_Core::getLogger()->info(__METHOD__ . '::' . __LINE__ . " Deleted {$unlinked} expired session files"); } Tinebase_Config::getInstance()->set(Tinebase_Config::LAST_SESSIONS_CLEANUP_RUN, Tinebase_DateTime::now()->toString()); } }