Cache en PHP – Simple y eficiente

Cuando trabajamos php hechos desde cero, la velocidad puede ser a menudo un problema. El almacenamiento en caché es de gran utilidad para acelerar páginas. En este artículo te mostraré una manera muy fácil y eficiente para almacenar en caché de forma dinámica las páginas PHP que necesitan para ser más rápido.

Primer Paso

Tenemos que crear dos archivos.

El primero llamado top-cache.php que debe contener el siguiente código:


<?
$url = $_SERVER["SCRIPT_NAME"];
$break = Explode('/', $url);
$file = $break[count($break) - 1];
$cachefile = 'cached-'.substr_replace($file ,"",-4).'.html';
$cachetime = 300; // valor en segundos

if (file_exists($cachefile) && time() - $cachetime < filemtime($cachefile)) {
echo "<!-- Cached copy, generated ".date('H:i', filemtime($cachefile))." -->\n";
include($cachefile);
exit;
}
ob_start();
?>

¿qué hace este código? 

Las primeras 5 líneas crean el nombre del archivo en caché según el archivo php actual. Por lo tanto, si estás usando un archivo llamado list.php , el archivo almacenado en caché se denomina cached-list.html .

La línea 6 crea una variable $cachetime que determina la vida del caché.

Las líneas 9 y 13 son una sentencia condicional que busqua un archivo llamado $cachefile . Si no se encuentra el archivo, se inserta un comentario (línea 10) y el archivo $cachefile se incluye. Entonces, la declaración exit detiene la ejecución de la secuencia y el archivo se envía al cliente. Lo que significa que si no se encuentra el archivo estático, ningún código php es interpretado por el servidor.

Segundo Paso

Ahora, creá un segundo archivo php, llamado bottom-cache.php y peguá el código de abajo.


<?
$cached = fopen($cachefile, 'w');
fwrite($cached, ob_get_contents());
fclose($cached);
ob_end_flush();
?>

Si el archivo llamado $cachefile no se encuentra en el servidor, el código se ejecuta y crea el archivo, así que la próxima vez que la página sea llamada, el archivo $cachefile estático será servido al navegador del cliente en lugar de ejecutar todo el PHP.

Tercer Paso

Ahora que creaste los dos archivos necesarios, simplemente tenés que incluirlos en la página php que queres cachear. Como habrás adivinado, la página top-cache.php debe ser incluida en el comienzo de tu página php y la página bottom-cache.php al final, como se muestra a continuación:


<? include('top-cache.php'); ?>

Tu codigo aquí....

<? include('bottom-cache.php'); ?>

Ahora bien, si probás el caché en una página lenta, te sorprenderás de lo rápido que la página es. Este caché fácil es mi solución preferida cuando se trabaja “desde cero” en sitios web en PHP.

Espero lo apliquen.

Social tagging: >

Comments are closed.