Esempio n. 1
0
 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');
             }
         }
     }
 }
Esempio n. 2
0
 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);
         }
     }
 }
Esempio n. 3
0
 /**
  * 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;
 }
Esempio n. 4
0
 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);
 }