Ver Mensaje Individual
  #8 (permalink)  
Antiguo 08/01/2014, 16:29
Avatar de pateketrueke
pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Cache parcial o fragmentado

Una forma fácil de hacer ese tipo de cache sería así:
Código PHP:
Ver original
  1. <?php
  2.  
  3. function cache($id, \Closure $block, $ttl = 300)
  4. {
  5.   $cache_file = "/tmp/$id.cache";
  6.  
  7.   if (is_file($cache_file)) {
  8.     $mtime = filemtime($cache_file);
  9.  
  10.     if ((time() - $mtime) > $ttl) {
  11.       unlink($cache_file);
  12.     } else {
  13.       return readfile($cache_file);
  14.     }
  15.   }
  16.  
  17.   ob_start();
  18.   $block();
  19.   $output = ob_get_clean();
  20.  
  21.   file_put_contents($cache_file, $output);
  22.  
  23.   echo $output;
  24. }
  25.  
  26.  
  27. echo "Esto se ejecuta siempre\n";
  28.  
  29. cache('foo', function() {
  30.   echo "Esto se ejecuta una vez cada 10 segundos\n";
  31.   echo date('r'), "\n";
  32. }, 10); // 10 segundos
  33.  
  34. echo "Esto se ejecuta siempre\n";

Con respecto a esto:

Cita:
Lo que no entiendo es que dices: ...Usar...memcache/couchbase.
¿Es necesario? no basta con ob_start,ob_get_clean?
Depende mucho del performance que busques, evidentemente el sistema de archivos es lento comparado con memcache.

Además ob_start/ob_get_clean no son sistemas de cache propiamente, así que no digas falacias.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.