CakePHP: una semplice struttura per salvare i dati in cache via controller

ATTENZIONE! Il post ha più di 2 anni e le informazioni contenute potrebbero essere obsolete (ad esempio a causa di un aggiornamento di versione rispetto agli elementi descritti o links modificati da siti esterni).

Ecco una struttura molto semplice per gestire via controller i dati da salvare in cache:

//imposta identificativo dei dati salvati in cache
$cache_id = 'contenuto_xyz';
//imposta un prefisso per la cache costituito da LINGUA_mycache_
Cache::set(array('prefix' => Configure::read('Config.language').'_mycache_'));
//cerca i dati. se la chiave della cache non è impostata, se è scaduta
//o si verifica un errore durante la lettura $data sarà == false
$this->data[$cache_id] = Cache::read($cache_id);
//se i dati non sono in cache
if ($this->data[$cache_id] === false) {

    /*   INIZIO RICERCA/ELABORAZIONE DATI  */
    $data = $this->XYZ->find('all');
    /*  FINE RICERCA/ELABORAZIONE DATI  */

    //scrittura dell'elemento in cache
    Cache::set(array('prefix'=>Configure::read('Config.language').'_mycache_'));
    Cache::write($cache_id, $data );
}
//imposta la variabile con i dati
$this->data[$cache_id] = $data;

In questo modo modificando il nome della chiave nella prima riga ( $cache_id ) e la sezione di ricerca ed elaborazione dei dati è possibile riutilizzare la struttura del codice adattandola alle proprie esigenze.


Commenti