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