php

Almacenamiento en caché de datos en un archivo mediante PHP

Last updated: 06.04.2026
Views: 124

A veces es necesario limitar el número de solicitudes a una fuente de datos externa, especialmente cuando los datos no cambian con frecuencia. Por ejemplo, esto puede ser útil al trabajar con API que proporcionan tipos de cambio, datos meteorológicos u otra información que se actualiza solo periódicamente. Realizar una solicitud en cada carga de página en estos casos es ineficiente y puede ralentizar la aplicación.

Una solución sencilla y eficaz es almacenar los datos en caché en un archivo local. En lugar de solicitar datos nuevos cada vez, el script primero comprueba si ya existe una versión en caché y si aún está actualizada. Este enfoque puede reducir significativamente el número de solicitudes externas y mejorar la velocidad de carga de la página.

La idea básica del almacenamiento en caché basado en archivos es comparar la hora de la última modificación del archivo de caché con la hora actual. Si el archivo aún está actualizado (por ejemplo, si se actualizó en la última hora), el script utiliza su contenido. De lo contrario, obtiene nuevos datos de la fuente externa, actualiza el archivo de caché y luego devuelve el resultado actualizado.

PHP

// Cache lifetime in seconds
$expires = 3600; 
$cache_file = 'data.json';
// Some api url
$url = 'https://jsonplaceholder.typicode.com/posts/1/comments';

if (file_exists($cache_file) && (filemtime($cache_file) > (time() - $expires))) {
	// Getting data from the cache
   	$file = file_get_contents($cache_file);
} else {
	// Write cache
	$file = file_get_contents($url);
	file_put_contents($cache_file, $file, LOCK_EX);
}

Este método es fácil de implementar en PHP y funciona bien para muchos proyectos pequeños y medianos donde no se requiere un sistema de almacenamiento en caché completo.

author
Autor: Igor Rybalko
He estado trabajando como desarrollador front-end desde 2014. Mi principal pila tecnológica es Vue.js y WordPress.

Publicaciones similares:

Leave a Reply

Your email address will not be published. Required fields are marked *