/** * this method is called with register_shutdown_function() and writes all data queued into the cache * @static * @return void */ public static function shutdown() { // set inShutdown to true so that the output-buffer knows that he is allowed to send the headers self::$inShutdown = true; // flush all custom output buffers while (@ob_end_flush()) { } // flush everything flush(); if (function_exists("fastcgi_finish_request")) { fastcgi_finish_request(); } // clear tags scheduled for the shutdown Cache::clearTagsOnShutdown(); // write collected items to cache backend and remove the write lock Cache::write(); Cache::removeWriteLock(); // release all open locks from this process Model\Tool\Lock::releaseAll(); // disable logging - otherwise this will cause problems in the ongoing shutdown process (session write, __destruct(), ...) \Logger::resetLoggers(); }