FacturaScripts

Cache
in package

FinalYes

Caché simple basada en ficheros, almacenada en `/MyFiles/Tmp/FileCache`.

Cada clave se materializa como un fichero .cache cuyo contenido es el valor serializado con serialize(). La expiración se calcula a partir de la fecha de modificación del fichero (filemtime) frente a la constante EXPIRATION, por lo que no se almacena un TTL por entrada: todas las entradas comparten la misma vida útil. Si se necesita un control de TTL más fino, usar otro mecanismo de caché.

Las claves se sanean (las barras / y \ se sustituyen por _) para garantizar que el nombre resultante sea seguro como nombre de fichero, pero no se hashean: claves muy largas pueden desbordar el límite del sistema de ficheros.

Para casos donde se quiera evitar leer del disco varias veces dentro de la misma petición, withMemory() devuelve una variante que combina esta caché con un nivel adicional en memoria.

Table of Contents

Constants

EXPIRATION  : mixed = 3600
Tiempo de vida en segundos compartido por todas las entradas (1 hora).
FILE_PATH  : mixed = '/MyFiles/Tmp/FileCache'
Ruta de la caché relativa a `FS_FOLDER`.

Methods

clear()  : void
Borra todas las entradas de la caché de ficheros.
delete()  : void
Elimina la entrada asociada a `$key`. Si el fichero no existe, no hace nada.
deleteMulti()  : void
Elimina todas las entradas cuya clave (transformada en nombre de fichero) empiece por `$prefix`.
expire()  : void
Borra los ficheros cuyo `filemtime` indica que ya han expirado.
get()  : mixed
Devuelve el valor cacheado bajo `$key`, o `$default` si no existe, ha expirado o no se puede deserializar.
has()  : bool
Indica si existe una entrada vigente (no expirada) para `$key`.
remember()  : mixed
Devuelve el valor cacheado, o lo calcula con `$callback`, lo guarda y lo devuelve.
set()  : void
Guarda `$value` en la caché bajo `$key`.
withMemory()  : CacheWithMemory
Devuelve un wrapper que añade un nivel de caché en memoria sobre la caché de ficheros.
filename()  : string
Construye la ruta del fichero asociado a `$key`.

Constants

EXPIRATION

Tiempo de vida en segundos compartido por todas las entradas (1 hora).

public mixed EXPIRATION = 3600

FILE_PATH

Ruta de la caché relativa a `FS_FOLDER`.

public mixed FILE_PATH = '/MyFiles/Tmp/FileCache'

Methods

clear()

Borra todas las entradas de la caché de ficheros.

public static clear() : void

Sólo se eliminan los ficheros con extensión .cache, dejando intacto cualquier otro contenido que pudiera haber en la carpeta. Si la carpeta no existe, no hace nada.

delete()

Elimina la entrada asociada a `$key`. Si el fichero no existe, no hace nada.

public static delete(string $key) : void
Parameters
$key : string

deleteMulti()

Elimina todas las entradas cuya clave (transformada en nombre de fichero) empiece por `$prefix`.

public static deleteMulti(string $prefix) : void

El prefijo se compara contra el nombre del fichero ya saneado, así que las barras del prefijo deberán reemplazarse por _ por parte del llamador si se quiere usar tal cual.

Parameters
$prefix : string

expire()

Borra los ficheros cuyo `filemtime` indica que ya han expirado.

public static expire() : void

Pensado para limpiezas periódicas (por cron o tareas internas). A diferencia de clear(), aquí no se filtra por extensión: se elimina cualquier entrada del directorio con fecha de modificación anterior a now - EXPIRATION, saltando únicamente . y ...

get()

Devuelve el valor cacheado bajo `$key`, o `$default` si no existe, ha expirado o no se puede deserializar.

public static get(string $key[, mixed $default = null ]) : mixed

Si el contenido del fichero no se puede deserializar (por ejemplo porque la clase original ha cambiado o el dato está corrupto), se devuelve el valor por defecto en lugar de propagar la excepción, evitando romper al llamador por una caché inválida.

Parameters
$key : string
$default : mixed = null

valor a devolver cuando no hay entrada válida

has()

Indica si existe una entrada vigente (no expirada) para `$key`.

public static has(string $key) : bool

No deserializa el contenido, por lo que no detecta ficheros corruptos: una llamada posterior a get() puede devolver el valor por defecto aunque has() haya devuelto true.

Parameters
$key : string
Return values
bool

remember()

Devuelve el valor cacheado, o lo calcula con `$callback`, lo guarda y lo devuelve.

public static remember(string $key, Closure $callback) : mixed

Aviso: la comprobación se hace con is_null($value), así que un valor null cacheado se tratará como ausencia y forzará a recalcular. No usar esta función para cachear nulls intencionados; en ese caso conviene devolver desde el callback un sentinela distinto.

Parameters
$key : string
$callback : Closure

función a invocar cuando no hay valor en caché

set()

Guarda `$value` en la caché bajo `$key`.

public static set(string $key, mixed $value) : void

Si el directorio no existe se crea con permisos 0777 recursivamente, para que tanto el proceso de PHP como otros usuarios del sistema (CLI, otra instancia, etc.) puedan operar sobre la caché. La primera vez que se crea un fichero se le aplica chmod 0666 para evitar problemas en entornos donde la umask por defecto deja los ficheros sin permisos de escritura para el grupo. El valor se serializa con serialize(), así que puede ser cualquier tipo serializable de PHP.

Parameters
$key : string
$value : mixed

withMemory()

Devuelve un wrapper que añade un nivel de caché en memoria sobre la caché de ficheros.

public static withMemory() : CacheWithMemory

Útil cuando una misma clave se consulta muchas veces dentro de la misma petición y no se quiere ir al disco cada vez. La instancia es nueva en cada llamada, así que el nivel en memoria no se comparte entre llamadas distintas a withMemory().

Return values
CacheWithMemory

filename()

Construye la ruta del fichero asociado a `$key`.

private static filename(string $key) : string

Las barras / y \ se sustituyen por _ para garantizar un nombre válido en el sistema de ficheros. No se aplica hashing, así que el llamador es responsable de evitar claves extremadamente largas o con caracteres no admitidos por su sistema.

Parameters
$key : string
Return values
string
On this page

Search results