Foros del Web » Programando para Internet » PHP »

Cache parcial o fragmentado

Estas en el tema de Cache parcial o fragmentado en el foro de PHP en Foros del Web. Hola, He estado buscando algún script o librería para hacer cache parcial o fragmentado (caché a una zona de la web, no a todo el ...
  #1 (permalink)  
Antiguo 08/01/2014, 10:26
 
Fecha de Ingreso: noviembre-2012
Mensajes: 76
Antigüedad: 11 años, 4 meses
Puntos: 3
Cache parcial o fragmentado

Hola,
He estado buscando algún script o librería para hacer cache parcial o fragmentado (caché a una zona de la web, no a todo el html) y la verdad no he tenido exito.

Si alguien me pudiera facilitar algún script, librería se lo agradecería pues lo que he encontrado hasta ahora o esta en ingles y no me aclaro o son parte de un framework y tampoco me aclaro.

Pd: he mirado y remirado google.
Saludos!
  #2 (permalink)  
Antiguo 08/01/2014, 11:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Cache parcial o fragmentado

Busca en http://packagist.org/ por alguna librería de cache.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 08/01/2014, 12:41
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 10 meses
Puntos: 127
Respuesta: Cache parcial o fragmentado

te recomiendo APC es facil y rapido de instalar y configurar, esta en todos los repositorios
http://cl1.php.net/manual/es/book.apc.php
http://pecl.php.net/package/APC
  #4 (permalink)  
Antiguo 08/01/2014, 15:38
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 16 años, 11 meses
Puntos: 270
Respuesta: Cache parcial o fragmentado

Cita:
Iniciado por enlinea777 Ver Mensaje
te recomiendo APC es facil y rapido de instalar y configurar, esta en todos los repositorios
http://cl1.php.net/manual/es/book.apc.php
http://pecl.php.net/package/APC
Esta caché es distinta a la que busca el autor del post.Es una caché de los tokens del parser PHP.Es aconsejable instalarla, en cualquier caso.
Una caché parcial de contenido html es muy sencillo de hacer.La lógica es la misma que la de un html completo.Usar ob_start,ob_get_clean, y memcache/couchbase. La única diferencia es que en vez de usar la url + $_GET como claves de la cache, tienes que darle un nombre a cada bloque html a cachear, y usarlo en vez de la url.
  #5 (permalink)  
Antiguo 08/01/2014, 16:01
 
Fecha de Ingreso: noviembre-2012
Mensajes: 76
Antigüedad: 11 años, 4 meses
Puntos: 3
Respuesta: Cache parcial o fragmentado

Cita:
Iniciado por pateketrueke Ver Mensaje
Busca en [url]http://packagist.org/[/url] por alguna librería de cache.
Impresionante web llena de recursos, directa a los favoritos!
  #6 (permalink)  
Antiguo 08/01/2014, 16:05
 
Fecha de Ingreso: noviembre-2012
Mensajes: 76
Antigüedad: 11 años, 4 meses
Puntos: 3
Respuesta: Cache parcial o fragmentado

Cita:
Iniciado por enlinea777 Ver Mensaje
te recomiendo APC es facil y rapido de instalar y configurar, esta en todos los repositorios
[url]http://cl1.php.net/manual/es/book.apc.php[/url]
[url]http://pecl.php.net/package/APC[/url]
Ummm... se me olvido comentar que estoy en un VPS administrado, por lo que no tengo acceso para instalar modulos, ni al php.ini etc... y por eso también había descartado varios resultados que me habían salido googleando.

Busco algo que pueda manejar directamente desde "htdocs", alguna librería o script php
  #7 (permalink)  
Antiguo 08/01/2014, 16:15
 
Fecha de Ingreso: noviembre-2012
Mensajes: 76
Antigüedad: 11 años, 4 meses
Puntos: 3
Respuesta: Cache parcial o fragmentado

Cita:
Iniciado por dashtrash Ver Mensaje
Esta caché es distinta a la que busca el autor del post.Es una caché de los tokens del parser PHP.Es aconsejable instalarla, en cualquier caso.
Una caché parcial de contenido html es muy sencillo de hacer.La lógica es la misma que la de un html completo.Usar ob_start,ob_get_clean, y memcache/couchbase. La única diferencia es que en vez de usar la url + $_GET como claves de la cache, tienes que darle un nombre a cada bloque html a cachear, y usarlo en vez de la url.
Muchas gracias por tu indicación, voy a probar ahora mismo. De echo hasta ahora estoy usando: [URL="http://www.baluart.net/articulo/sistema-de-cache-con-php"]http://www.baluart.net/articulo/sistema-de-cache-con-php[/URL] para cachear toda la pagina, y creo que siguiendo tus indicaciones y modificando un par de cosas podré hacerlo funcionar sin problemas... O eso espero.

Lo que no entiendo es que dices: ...Usar...memcache/couchbase.
¿Es necesario? no basta con ob_start,ob_get_clean?
  #8 (permalink)  
Antiguo 08/01/2014, 16:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
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.
  #9 (permalink)  
Antiguo 08/01/2014, 17:33
 
Fecha de Ingreso: noviembre-2012
Mensajes: 76
Antigüedad: 11 años, 4 meses
Puntos: 3
Respuesta: Cache parcial o fragmentado

Muchas gracias, esto si es lo que estaba buscando.

Nobstante, respecto a lo que dices aquí:
Cita:
Además ob_start/ob_get_clean no son sistemas de cache propiamente, así que no digas falacias.
Comentarte que lo primero que he tenido que hacer es informarme de lo que son las falacias: http://es.wikipedia.org/wiki/Falacia
Una vez leido, he de decirte que eres tu quien esta aplicando una falacia hacia mi, pues yo nunca dije que ob_start/ob_get_clean fueran sistemas de cache !!!
  #10 (permalink)  
Antiguo 08/01/2014, 17:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Cache parcial o fragmentado

No lo dijiste, pero dado el contexto y la redacción así se entendió.

Cita:
Lo que no entiendo es que dices: ...Usar...memcache/couchbase.
¿Es necesario? no basta con ob_start,ob_get_clean?
No debiste exponer así tus argumentos.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 09/01/2014, 16:16
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 10 meses
Puntos: 127
Respuesta: Cache parcial o fragmentado

en todo caso... que uso le darias a esa cache? se podria saber para que la quieres usar?, puede que exista algo mas sencillo que te sirva.
  #12 (permalink)  
Antiguo 10/01/2014, 06:05
 
Fecha de Ingreso: noviembre-2012
Mensajes: 76
Antigüedad: 11 años, 4 meses
Puntos: 3
Respuesta: Cache parcial o fragmentado

Cita:
en todo caso... que uso le darias a esa cache? se podria saber para que la quieres usar?, puede que exista algo mas sencillo que te sirva.
Básicamente es para cachear resultados de consultas mysql. Después muestro caratulas, titulo, descripción etc... de lo que haya retornado la consulta. Las consultas son a bd que suelen tener entre 20.000 y 100.000 registros y en las que muchas veces tengo que hacer LIKE con %$busqueda%, otras veces full-text y otras veces simplemente SELECT.

No me interesa cachear la pagina completa porque hay cosas que se muestran distintas si es de un país u otro, o por ejemplo porque hay cuentas de usuarios y pueden hacer distintas acciones si están registrados o no etc...

Etiquetas: cache, html, parcial
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 07:27.