Repolode
mike-bronner

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. 1

    Установите пакет с помощью Composer

    composer require mike-bronner/laravel-model-caching
  2. 2

    Добавьте trait Cachable в базовую модель, от которой наследуются ваши модели

  3. 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 индексы и переписывание запросов и предоставляет встроенную панель мониторинга.

41522PHPMITОбновлён 19 дней назад

PHP-фреймворк для веб-приложений с выразительным синтаксисом: маршрутизация, ORM, миграции, очереди и трансляция событий в реальном времени.

85,4 тыс.+172 за неделю26,2 тыс.BladeБез лицензииОбновлён 8 дней назад