public function compileScripts() { if (!extension_loaded('apc')) { return; } $files = array(); foreach ($this->_refresh_rules as $rules) { $rules = (object) $rules; $files = array_merge($files, File::getFilesFromDirectory($rules->dir, $rules->extension, $rules->recursive)); } foreach ($files as $file) { if (!$this->isFileCached($file)) { if ($d = \apc_delete_file($file)) { Logger::debug('Elimino dalla cache lo script ' . $file . ' per ricompilarlo', RENDER_CORE_LOGNAME); } else { Logger::debug('Non sono riuscito ad eliminare ' . $file . ' ' . print_r($d, true)); } if ($d = \apc_compile_file($file)) { Logger::debug('Ho compilato lo script ' . $file, 'core'); } else { Logger::debug('Non sono riuscito a compilare ' . $file . ' ' . print_r($d, true), 'core'); } } } }
public function compileScripts() { if (!extension_loaded('Zend OPcache')) { return; } $files = array(); foreach ($this->_refresh_rules as $rules) { $rules = (object) $rules; $files = array_merge($files, File::getFilesFromDirectory($rules->dir, $rules->extension, $rules->recursive)); } foreach ($files as $file) { if (!\opcache_is_script_cached($file)) { // questo ciclo dovrebbe farlo solo allo start del ws, dato che una volta che sono tutti cacheati, controlla lui // se ci sono modifiche da fare dopo i secondi opcache.revalidate_freq passati dalla memorizzazione alla request Logger::debug('Ho compilato lo script ' . $file . ' perchè non era compilato', RENDER_CORE_LOGNAME); opcache_compile_file($file); } } }
/** * Configura il nome dell'adapter per gestire la cache dei dati * @param type $method */ public static function setCachedObjectsStorageType($method = 'apc') { Logger::info('Cambio il metodo di caching degli oggetti in ' . $method, 'core'); self::$_cached_objects = $method; }
public function write($session_id, $session_data) { // mi setto l'expire della sessione in cache Logger::debug('Scrivo la data di scadenza sul server memcache pari a ' . date('d-m-Y H:i:s', time()) . ' per la sessione ' . $session_id, RENDER_CORE_LOGNAME); $this->_memcache_server->set($session_id, time(), $this->_cacheTypeSessionExpire, 0); // aggiungo la sessione nella lista di sessioni attive Logger::debug('Prendo l\'indice delle sessioni', RENDER_CORE_LOGNAME); $data = $this->_memcache_server->get('global_session', $this->_cacheTypeSessionIndex); if (count(json_decode($data)) == 0) { Logger::debug('Indice sessioni trovato vuoto', RENDER_CORE_LOGNAME); $sessions = array(); } else { $sessions = json_decode($data); } // add Logger::debug('Aggiungo sessione all\'indice', RENDER_CORE_LOGNAME); if (array_search($session_id, $sessions) === false) { $sessions[] = $session_id; Logger::debug('La sessione era nuova e l\'ho aggiunta', RENDER_CORE_LOGNAME); } // json encode Logger::debug('Codifico in json l\'indice', RENDER_CORE_LOGNAME); $json = json_encode($sessions); // storicizzo Logger::debug('Storicizzo i dati e l\'indice sul server memcache ' . print_r($json, true), RENDER_CORE_LOGNAME); $this->_memcache_server->set('global_session', $json, $this->_cacheTypeSessionIndex, 0); // salvo i dati di sessione Logger::debug('Storicizzo la sessione ' . $session_data, RENDER_CORE_LOGNAME); return $this->_memcache_server->set($session_id, $session_data, $this->_cacheTypeSession, 0); }