Генерирует PHPDoc для фасадов Laravel и моделей Eloquent, чтобы IDE, например PhpStorm, точнее предлагали автодополнение.
mike-bronner/laravel-model-caching
Пакет для Laravel, который автоматически кэширует запросы к Eloquent-моделям и связям и сбрасывает кэш при изменении моделей.
- Звёзды
- 2,378
- Форки
- 231
- Открытые issues
- 2
- Последний коммит
- 4 дня назад
Что это?
Model Caching for Laravel добавляет к Eloquent-моделям трейт Cachable, чтобы результаты запросов, предварительно загруженные связи и агрегаты сохранялись в кэше приложения без ручного задания ключей. При создании, обновлении или удалении модели связанные записи кэша сбрасываются автоматически; изменения pivot-таблиц в связях belongsToMany тоже учитываются.
Пакет работает с хранилищами кэша Redis, Memcached, APC и DynamoDB. Среди доступных настроек — общий TTL или TTL для отдельных моделей, период ожидания, который объединяет сбросы кэша для моделей с частыми записями, переход к запросам напрямую в базу данных при недоступности кэша и префиксы кэша для отдельных tenants. Запросы с inRandomOrder() или блокировками строк не кэшируются; если у связанной модели нет этого трейта, запрос родительской модели тоже не кэшируется.
Требуются PHP 8.3+ и Laravel 12 или 13.
Ключевые возможности
- 01Добавляет кэширование запросов Eloquent, предварительно загружаемых связей и агрегатов с помощью трейта или базовой модели
- 02Автоматически сбрасывает связанные записи кэша при создании, обновлении, удалении моделей и изменениях pivot-таблиц
- 03Поддерживает хранилища кэша Redis, Memcached, APC и DynamoDB
- 04Позволяет задавать общий TTL кэша и TTL для отдельных моделей
- 05Предоставляет период ожидания, чтобы ограничить сбросы кэша при частых записях
- 06При недоступности кэша может выполнять запросы напрямую к базе данных
Сценарии использования
- Ускорение страниц Laravel с преобладанием чтения, где часто повторяются запросы Eloquent
- Кэширование данных моделей без ручной логики Cache::remember и forget
- Мультитенантные приложения Laravel, которым нужна изоляция кэша для каждого tenant
- Приложения, использующие DynamoDB в AWS как управляемое хранилище кэша
Быстрый старт
- 1
Установите пакет с помощью Composer
composer require mike-bronner/laravel-model-caching - 2
Добавьте trait Cachable в базовую модель, от которой наследуются ваши модели
- 3
При необходимости опубликуйте файл конфигурации
php artisan modelCache:publish --config
Что важно знать
- Требуется PHP 8.3 или новее и Laravel 12 или 13.
- Драйверы кеша Array, File и Database не поддерживаются.
- Запросы с предварительной загрузкой связи, модель которой не использует Cachable, не кешируются.
- Инвалидация в DynamoDB выполняется только логически, поэтому устаревшие строки остаются до очистки по TTL.
Темы
Частые вопросы
- Что такое laravel-model-caching?
- Пакет для Laravel, который автоматически кэширует запросы к Eloquent-моделям и связям и сбрасывает кэш при изменении моделей. Model Caching for Laravel добавляет к Eloquent-моделям трейт Cachable, чтобы результаты запросов, предварительно загруженные связи и агрегаты сохранялись в кэше приложения без ручного задания ключей. При создании, обновлении или удалении модели связанные записи кэша сбрасываются автоматически; изменения pivot-таблиц в связях belongsToMany тоже учитываются.
- laravel-model-caching можно использовать бесплатно? Какая у него лицензия?
- laravel-model-caching распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- laravel-model-caching всё ещё поддерживается?
- Активно поддерживается. Последний коммит в laravel-model-caching — 3 нояб. 2026 г..
- Для чего можно использовать laravel-model-caching?
- Ускорение страниц Laravel с преобладанием чтения, где часто повторяются запросы Eloquent Кэширование данных моделей без ручной логики Cache::remember и forget Мультитенантные приложения Laravel, которым нужна изоляция кэша для каждого tenant Приложения, использующие DynamoDB в AWS как управляемое хранилище кэша
- Как установить laravel-model-caching?
- Установите пакет с помощью Composer: composer require mike-bronner/laravel-model-caching Добавьте trait Cachable в базовую модель, от которой наследуются ваши модели При необходимости опубликуйте файл конфигурации: php artisan modelCache:publish --config
- Где скачать laravel-model-caching?
- Исходный код и инструкции по установке — на GitHub: https://github.com/mike-bronner/laravel-model-caching
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Пакет для Laravel, который собирает медленные запросы к базе данных, группирует повторы, предлагает с помощью LLM индексы и переписывание запросов и предоставляет встроенную панель мониторинга.
Высокоуровневый веб-фреймворк для Python, который помогает быстро разрабатывать приложения с чистой и практичной архитектурой.
Низколатентный кэширующий сервер на C с поддержкой протоколов Memcache, Redis/Valkey, HTTP и Postgres, который можно встроить в программу как один C-файл.
Клиентская библиотека Redis для .NET с поддержкой Redis Sentinel и Cluster, а также синхронного и асинхронного API.
PHP-фреймворк для веб-приложений с выразительным синтаксисом: маршрутизация, ORM, миграции, очереди и трансляция событий в реальном времени.