Cómo crear un sistema de caché simple, pero eficiente

Al trabajar en sitios webs desarrollados desde cero y sin un framework, la velocidad de carga se puede volver un verdadero problema. El almacenamiento en caché es extremadamente útil a la hora de acelerar páginas web desarrolladas en PHP. En este artículo, te mostraré una forma sencilla y eficiente de almacenar dinámicamente páginas PHP que necesitan ser más veloces.

Paso 1: Crea el fichero top-cache.php

Necesitamos crear dos ficheros. El primero que crearemos es el llamado top-cache.php, y en él pegaremos el código de a continuación:

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

if (file_exists($cachefile) && time() - $cachetime < filemtime($cachefile)) {
    include($cachefile);
    exit;
}
ob_start(); 
?>

Pero, ¿qué hace este código? Las primeras cinco líneas crean el archivo cacheado con el nombre acorde al fichero php actual. Es decir, si estás utilizando un fichero llamado list.php, el fichero cacheado se llamará cached-list.html.

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

Las líneas de la 7 a la 10 es una sentencia condicional la cual busca el fichero llamado como el valor de la variable $cachefile. Si se encuentra el fichero, se hace un include del fichero. Despues, la sentencia exit interrumpe la ejecución del script y el contenido del fichero se envía al navegador del usuario. Es decir, si existe ese fichero, se muestra el HTML del contenido, y no se ejecutan las sentencias PHP en el servidor.

La línea 11 crea un buffer, si es que no se ha encontrado el fichero $cachefile.

Paso 2: Crea el fichero bottom-cache.php

Ahora creamos otro fichero llamado bottom-cache.php, y pegamos el código de a continuación en él.

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

Si el fichero $cachefile no existe en tu servidor, este código se ejecutará y creará el fichero, por lo que la próxima vez que se llame a la página, el archivo se servirá al navegador del cliente en lugar de ejecutar todas las sentencias PHP del archivo.

Paso 3: Incluye los ficheros de caché en tu página

Ahora que hemos creado los dos ficheros del sistema de caché, el siguiente paso es incluirlo en la página PHP que queremos cachear. Como habrás podido adivinar, el fichero top-cache.php debe incluirse al principio de tu página php, y el bottom-cache.php al final, tal y como indicamos a continuación:

<?php

include('top-cache.php'); 

// Tu codigo PHP va aqui

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

Ahora, prueba este sistema de caché en una página que te cargue lenta. Te sorprendarás de lo rápido que puede llegar a cargar. Este sistema de caché es una de mis soluciones favoritas cuando desarrollo sitios web en PHP desde cero.

Fuente: catswhocode.com

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP