Rudra Framework
Универсальный репозиторий данных для работы с таблицами базы данных через PDO.
Предоставляет лёгкий, безопасный и гибкий CRUD-интерфейс без ORM, с поддержкой кэширования, пагинации и нескольких СУБД (MySQL, PostgreSQL, SQLite).
Разработан в духе Rudra: минимализм, контроль, отсутствие избыточной абстракции.
$repo = new Repository('users');
// Чтение
$user = $repo->find(1);
$admin = $repo->findBy('role', 'admin');
// Создание
$repo->create(['name' => 'Alice', 'email' => 'alice@example.com']);
// Обновление
$repo->update(['id' => 1, 'name' => 'Alice Smith']);
// Удаление
$repo->delete(1);$pagination = new Pagination(page: 1, perPage: 10, total: $repo->numRows());
$users = $repo->getAllPerPage($pagination, 'id, name, email');$matches = $repo->search('john', 'name'); // LIKE '%john%'// Кэширует результат $repo->getAll() на 1 час
$users = $repo->cache(['getAll', ['id ASC']], '1 hour');
// Очистить кэш для метода
$repo->clearCache('database', 'getAll');
// Очистить всё
$repo->clearCache('all');$backup = new \PDO('sqlite:/backup.db');
$backupRepo = $repo->withConnection($backup);Очистка:
$repo->clearCache('templates', 'home'); // один файл
$repo->clearCache('all'); // все типы