unset($cleanup); // ============ setup database ============ // we do not unset the $database variable // as it is historically referenced in many places from the global namespace $database = new Kimai_Database_Mysql($kga, true); if (!$database->isConnected()) { die('Kimai could not connect to database. Check your autoconf.php.'); } Kimai_Registry::setDatabase($database); // ============ setup authenticator ============ $authClass = 'Kimai_Auth_' . ucfirst($kga->getAuthenticator()); if (!class_exists($authClass)) { $authClass = 'Kimai_Auth_Kimai'; } $authPlugin = new $authClass($database, $kga); Kimai_Registry::setAuthenticator($authPlugin); unset($authPlugin); // ============ load global configurations ============ $database->initializeConfig($kga); // ============ setup translation object ============ $service = new Kimai_Translation_Service(); Kimai_Registry::setTranslation($service->load($kga->getLanguage())); unset($service); $tmpDir = WEBROOT . 'temporary/'; if (!file_exists($tmpDir) || !is_dir($tmpDir) || !is_writable($tmpDir)) { die('Kimai needs write permissions for: temporary/'); } $frontendOptions = array('lifetime' => 7200, 'automatic_serialization' => true); $backendOptions = array('cache_dir' => $tmpDir); $cache = Zend_Cache::factory('Core', 'File', $frontendOptions, $backendOptions); Kimai_Registry::setCache($cache);