Skip to content

Conexiones Opcionales

Technomantus Corvi edited this page Sep 5, 2026 · 1 revision

Conexiones opcionales: Redis y MongoDB

Tanuki incluye tres clases de conexión independientes y de carga perezosa — Database, Redis y Mongo. No comparten interfaz a propósito: cada una expone directamente la API nativa de su driver, para que el framework nunca crezca hacia un ORM/ODM oculto. Usa la que necesite tu proyecto; las que no uses nunca se conectan.

// Relacional (PDO) — ver Modelos para la API completa
Database::connect();

// Redis (requiere la extensión nativa php-redis)
Redis::connect()->set('key', 'value');
Redis::connect()->get('key');
Redis::connect()->expire('key', 3600);

// MongoDB (requiere la extensión mongodb + composer require mongodb/mongodb)
Mongo::connect()->selectCollection('posts')->find(['status' => 'published']);
Mongo::connect()->selectCollection('posts')->insertOne(['title' => 'Hola']);

Instalar los drivers

# Redis
sudo apt install php-redis

# MongoDB
sudo apt install php-mongodb
composer require mongodb/mongodb

Ambos son totalmente opcionales — un proyecto que nunca llama a Redis::connect() o Mongo::connect() nunca abre esas conexiones.

Variables de .env

# Redis (opcional)
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_DATABASE=0

# MongoDB (opcional)
MONGO_URI=mongodb://127.0.0.1:27017
MONGO_DATABASE=

Por qué no comparten interfaz

Una API de consultas unificada entre una base relacional y una de documentos (Model::where() funcionando igual para ambas) es básicamente construir un ORM/ODM ligero — exactamente lo que este framework evita. Cada clase se mantiene como un envoltorio fino y honesto sobre su driver nativo, así nunca tienes que adivinar qué hace realmente una llamada por debajo.

Clone this wiki locally