3.7 KiB
Koneko ERP - Cache Helper Guide
✨ Esta guía detalla el uso correcto del sistema de cache en Koneko ERP, basado completamente en el helper
cache_manager()
, sin necesidad de interactuar con las clases internas comoKonekoCacheManager
oLaravelCacheManager
.
🔎 Filosofía
- Toda interacción de componentes con el sistema de cache debe realizarse exclusivamente mediante el helper
cache_manager()
. - Las clases internas son consideradas @internal, y no deben ser accedidas directamente por desarrolladores de componentes.
- El sistema permite configuración jerárquica basada en namespace del componente, grupo lógico de datos y claves individuales.
🔍 Sintaxis del Helper
cache_manager(string $component = 'admin', string $group = 'cache')
Retorna una instancia segura del gestor para el componente y grupo indicados. Ejemplos:
cache_manager('admin', 'avatar')->enabled();
cache_manager('website', 'menu')->ttl();
cache_manager('website', 'html')->flush();
⚖️ Jerarquía de Configuración
Las operaciones de cache respetan la siguiente jerarquía al determinar configuraciones:
koneko.{componente}.{grupo}.ttl
/enabled
koneko.{componente}.cache.ttl
/enabled
koneko.cache.ttl
/enabled
Esto permite granularidad sin perder coherencia global.
📃 Métodos Disponibles
Método | Descripción |
---|---|
key(string $suffix) |
Genera clave de cache completa con prefijos |
config($key, $default) |
Accede a configuraciones con prefijo aplicado |
ttl() |
TTL efectivo (en segundos) |
enabled() |
Determina si el cache está habilitado para el contexto actual |
flush() |
Limpia el grupo de cache completo si el driver lo permite |
driver() |
Devuelve el driver de cache actual |
shouldDebug() |
Evalúa si se encuentra en modo debug para cache |
registerDefaults() |
Registra valores default para ttl y enabled si no existen |
🚀 Ejemplos de Uso
Validar TTL efectivo
$ttl = cache_manager('website', 'menu')->ttl();
Verificar si está habilitado
if (cache_manager('admin', 'avatar')->enabled()) {
// Proceder con cache
}
Limpiar cache con soporte para etiquetas
cache_manager('website', 'html')->flush();
⚠️ Buenas Prácticas
- No uses directamente la clase
KonekoCacheManager
. - No accedas directamente al sistema
Cache::
sin pasar por el helper. - No asumas estructura de clave, usa
->key()
. - Sí configura
koneko.{componente}.{grupo}.ttl
en tu archivoconfig()
si tu componente lo necesita.
🔍 Debug y Diagnóstico
Ejecuta:
php artisan koneko:cache --component=website --group=html --ttl
php artisan koneko:cache --component=admin --group=avatar --flush
El comando mostrará información relevante para depuración sin exponer clases internas.
🚧 Futura Expansión
- Registro de tags
- TTLs dinámicos
- Integración con eventos y auditoría
- Modo "read-only" para ambientes cacheados
🌟 Conclusión
Este sistema garantiza modularidad, extensibilidad y seguridad. El helper cache_manager()
es la única puerta de entrada para desarrolladores y debe usarse exclusivamente para mantener la integridad del ecosistema.
✅ Si necesitas agregar un nuevo grupo de cache, simplemente define su configuración y comienza a usar el helper, sin necesidad de modificar clases o contratos.