BlogBabel API – (Ri)Giochiamo con XSL ma abilitiamo un sistema di caching

Postando l’articolo precedente avevo il dubbio marcio di non star facendo qualcosa di buono. Viste le continue raccomandazioni a non usare pubblicamente le API di BlogBabel (per il validissimo motivo che sono ancora in beta) ho pensato bene di postare, ma inviare subito dopo una email a Ludo con richiesta di chiarimento ed eventuale proposta di offuscamento se l’iniziativa fosse stata poco gradita.

Non solo la cosa è stata ben accetta, ma ne è pure uscito fuori un suggerimento molto interessante! Quello di abilitare un sistema di caching in modo da evitare continue chiamate al server di BlogBabel.

Anche in questo caso l’occasione ci è profiqua per l’utilizzo dei file XSL. Perchè se è vero che dovendo creare un file di cache si potrebbe pensare di salvare un array (cosa fattibilissima e giustissima), prendiamo la palla al balzo ed utilizziamo delle specifiche funzioni del PHP5 studiate per la gestione dei file XML.

Avrete già capito che se non usate PHP5 la cosa non vi funzionerà 🙂 . Ma dato che ho aderito

Ecco la funzione che si occuperà di creare il file di cache.

function createCache($file, $url){
  if(is_file($file) && !is_writable($file)) die (‘Impossibile aggiornare la cache’);
 
  if((is_file($file) && filesize($file) == 0) or (!is_file($file)) or (time() > (filemtime($file) + 28800))){
   $doc = new DOMDocument;
   $doc->formatOutput = true;
   $doc->load($url);
   $doc->save($file);
  }
}

Uso l’oggetto DOM (che vuole sostituire DOM XML del php4) per mandare in loading e salvare in locale il file XML risultanza delle API di BlogBabel.

Le condizioni per le quali la cache si deve riaggiornare sono molto chiare:

  • Il file di cache esiste, ma è vuoto.
  • Il file di cache non esiste.
  • L’ultima modifica è stata apportata più di 8 ore fa.

Il risultato è identico a prima e lo trovate qui.

Per il resto, la manipolazione XSL avviene sul file locale invece che su quello remoto. Se qualcuno fosse interessato può scaricare il codice da qui. Ma non dimenticate che va usato con PHP5 e che dovete settare i permessi di scrittura alla directory che ospita la destinazione della cache.

2 thoughts on “BlogBabel API – (Ri)Giochiamo con XSL ma abilitiamo un sistema di caching”

  1. io vo a istinto o intelligenza sul .PHP

    Ma tu ne sai davvero altro che smanettone 😀

    Ciao e buona estate donzo.

    A presto, spero.

    Francesco

Comments are closed.