Está usted en Indice > Construcción > Lenguajes > PHP > Lecciones y Paso a Paso > Cacheando tus scripts para máxima optimización
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Cacheando tus scripts para máxima optimización (2)

El script "cache.php" consta de dos funciones: cache_abrir() se encarga primero de comprobar la existencia del fichero HTML o caché, si existe y no esta caducado muestra su contenido y termina la ejecución del script. cache_guardar() se encarga de guardar el resultado de la ejecución completa del script. Esta última función, solo se ejecutará cuando el caché no exista o halla expirado. El valor de caducidad o expiración de los ficheros caché lo define la variable $TIEMPO. La variable $DIR define el directorio donde se guardaran todos los ficheros caché que nuestro script "mostrar.php" creara dependiendo de la petición que se le haga, es decir, dependiendo del valor de la variable id.

Modificaciones del script original

A continuación te mostramos como quedara nuestro script "mostrar.php" una vez modificado para cachearse a si mismo:

<html>
<head>
  <title>Mi script</title>
</head>
<body>

  <?php

    include('conexion.php');    
    include('cache.php');    

// si existe y no ha caducado mostrar el cache y terminar ejecución del
// script en este punto
cache_abrir();

    // en vez de imprimir el resultado, lo conserva en la variable $html
    $get = mysql_query('select * from mitabla where id=''.$_GET['id'].''',$db);
    while($row = mysql_fetch_row($get)) {
      $html .= $row[0].' => '.$row[1].'<br>';
    }

    // como no existía el cache o había expirado guardamos el resultado
    // de la ejecución del script
    cache_guardar($html);

    // imprimir $html, el cual contiene el resultado de la ejecución del script
    echo $html;

  ?>

</body>
</html>

Tras la modificación, nuestro script ya no imprime directamente su resultado, lo tenemos que guardar en la variable $html, para que de esa forma la función cache_guardar() tenga algo que guardar, el contenido con el cual crear el fichero caché.

Es posible que te parezca que el modificar tus scripts para guardar su resultado en la variable $html en vez de imprimirlo directamente suponga demasiado trabajo. Si es así, a continuación te mostramos otra forma de obtener en la variable $html el resultado de la ejecución del script:

<html>
<head>
  <title>Mi script</title>
</head>
<body>

  <?php

    include('conexion.php');    
    include('cache.php');    

// si existe y no ha caducado mostrar el cache y terminar ejecución del
// script en este punto
cache_abrir();

// Línea 1 -> A partir de aquí no se devuelve nada, todo se escribe al
// buffer interno
ob_start();

    // en vez de imprimir el resultado, conservarlo en la variable $html
    $get = mysql_query('select * from mitabla where id=''.$_GET['id'].''',$db);
    while($row = mysql_fetch_row($get)) {
      echo $row[0].' => '.$row[1].'<br>';
    }

    // Línea 2 -> Obtiene el contenido del buffer
    $html = ob_get_contents();
    
    // Línea 3 -> Limpiar el buffer
    ob_end_clean();

    // como no existía el cache o había expirado guardamos el resultado de
    // la ejecución del script
    cache_guardar($html);

    // imprimir $html, el cual contiene el resultado de la ejecución del script
    echo $html;

  ?>

</body>
</html>

Con este nuevo método, en vez de reemplazar todos los "echo" por un "$html .=", simplemente debes agregar 3 líneas de código. La primera línea de be ir justo después de la llamada a la función cache_abrir(), mientras que las otras dos líneas justo antes de la llamada a la función cache_guardar(). Estas 3 líneas, también podrías incluirlas en la funciones cache_abrir() y cache_guardar(), de esta forma los cambios que tendrás que hacer a tus scripts serán aún menores. Si así lo prefieres, el script cache.php quedaría de la siguiente forma:

(En la página siguiente)



Usuarios que han visto este tema también han visto...

- Manejo de múltiples archivos en PHP
- heredoc en PHP
- Comprobar si existe el dominio del correo en PHP
- Banear IP de Web con PHP
- Introducción rápida a las sesiones


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad






Cursos de Community Manager

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 25-05-2012 a las 23:51:20