PHP Webmaster

Cómo crear una cache eficiente con php. Más rápidos

15 enero, 2013

Cuando creamos páginas con php nos interesa que la carga de la web sea rápida. Si una página web está cacheada sabemos que la carga es muy rápida. Vamos a ver como cachear de una forma fácil y eficiente dinámicamente con php. Para ser los más rápidos.

Paso 1. Crear un archivo que llamaremos top-cache.php

Crearemos dos ficheros, el primero lo llamaremos top-cache.php, solo tienes que copiar el siguiente código y subir a tu ftp

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

// Servir desde la cache si es mas actual que $cachetime
if (file_exists($cachefile) && time() - $cachetime < filemtime($cachefile)) {
echo "<!-- Copia en cache generada ".date('H:i', filemtime($cachefile))." -->\n";
include($cachefile);
exit;
}
ob_start(); // Crear buffer de salida
?>

Veamos que hace este código. En las cinco primeras líneas del código creamos el nombre del archivo que vamos a cachear, por ejemplo, si vamos a cachear un archivo llamado lista.html el archivo cacheado se llamará cache.lista.html

En la línea 6, de código creamos una variable, $cachetime, que determina la vida de la cache.

De la línea 9 a la 13, una sentencia condicional que buscar un archivo llamado $cachefile. Si encuentra el archivo, inserta un comentario, en la línea 10, y el fichero $cachefile es incluido. Entonces, el exit para la ejecución del script y el fichero es enviado al cliente. Todo esto significa, que si encuentra un fichero estático, el código php no se interpreta por el servidor y mostrará el fichero cacheado.

En la línea 14 simplemente va creando un buffer si el $cachefile no se encuentra. Todo esto es para el fichero top-cache.php como habíamos comentado.

Paso 2. Crear un archivo bottom-cache.php

Ahora creamos el segundo fichero, botton-cache.php, copia y pega el siguiente código:

<?php
// Cachear el contenid del fichero
$cached = fopen($cachefile, 'w');
fwrite($cached, ob_get_contents());
fclose($cached);
ob_end_flush(); // Enviar el navegador
?>

Si el fichero $cachefile no se encuentra en el servidor, se ejecuta el código y se crea el fichero, de esta forma la siguiente vez tendremos el fichero cacheado y el servidor servirá el fichero cacheado en lugar de ejecutar el código php.

Paso 3. Incluir los ficheros top-cache.php y bottom-cache.php en tu págian

Ahora solamente falta incluir los ficheros top-cache.php y bottom-cache.php en nuestra página. Claramente el fichero top-cache.php se incluye al principio de la página y bottom-cache.php al final de la página, por ejemplo

<? Php

 include ('top-cache.php');

 / / El código PHP normal va aquí

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

Ya solamente queda probar

Valora este post

También podría gustarte

Sin Comentarios

Dejar un Comentario