LaravelのFacadeとEloquentモデルのPHPDocファイルを生成し、PhpStormなどのIDEで正確な自動補完を利用できます。
mike-bronner/laravel-model-caching
Eloquentモデルやリレーションのクエリを自動でキャッシュし、モデルの変更時にキャッシュを無効化するLaravelパッケージです。
- スター
- 2,378
- フォーク
- 231
- 未解決の Issue
- 2
- 最終コミット
- 4 日前
これは何?
Model Caching for Laravelは、EloquentモデルにCachable traitを追加し、クエリ結果、Eager Loadしたリレーション、集計結果を、手動でキャッシュキーを指定せずにアプリケーションのキャッシュへ保存します。モデルの作成・更新・削除時には関連するキャッシュエントリーが自動的に消去され、belongsToManyリレーションのpivotテーブルの変更にも対応します。
Redis、Memcached、APC、DynamoDBのキャッシュストアで利用でき、全体またはモデルごとのTTL、書き込みの多いモデルで無効化をまとめるクールダウン期間、キャッシュが利用できない場合のデータベースへのフォールバック、テナントごとのキャッシュプレフィックスなどを設定できます。inRandomOrder()や行ロックを使うクエリはキャッシュされず、関連モデルにtraitがない場合は親のクエリもキャッシュされません。
PHP 8.3以降とLaravel 12または13が必要です。
主な機能
- 01traitまたはベースモデルを通じて、Eloquentのクエリ、Eager Load、集計結果をキャッシュする
- 02作成・更新・削除やpivotテーブルの変更時に、関連するキャッシュエントリーを自動で無効化する
- 03Redis、Memcached、APC、DynamoDBのキャッシュストアに対応する
- 04全体およびモデルごとのキャッシュTTLを設定できる
- 05頻繁な書き込みによる無効化を抑えるクールダウン期間を設定できる
- 06キャッシュバックエンドが停止した場合、データベースへの直接クエリにフォールバックできる
ユースケース
- 同じEloquentクエリを何度も実行する、読み取り中心のLaravelページを高速化する
- Cache::rememberやforgetを使った手動のキャッシュ処理を書かずにモデルデータをキャッシュする
- テナントごとにキャッシュを分離する必要があるマルチテナントのLaravelアプリで利用する
- AWSのマネージドキャッシュストアとしてDynamoDBを利用するアプリケーションで使う
クイックスタート
- 1
Composer でパッケージをインストールします
composer require mike-bronner/laravel-model-caching - 2
モデルが継承するベースモデルに Cachable trait を追加します
- 3
必要に応じて設定ファイルを公開します
php artisan modelCache:publish --config
使う前に知っておきたいこと
- PHP 8.3 以降、Laravel 12 または 13 が必要です。
- Array、File、Database のキャッシュドライバーはサポートされていません。
- Cachable を使用していないモデルとのリレーションを eager load するクエリは、キャッシュされません。
- DynamoDB の無効化は論理的にのみ行われるため、TTL によるクリーンアップまで古い行が残ります。
トピック
よくある質問
- laravel-model-caching とは?
- Eloquentモデルやリレーションのクエリを自動でキャッシュし、モデルの変更時にキャッシュを無効化するLaravelパッケージです。 Model Caching for Laravelは、EloquentモデルにCachable traitを追加し、クエリ結果、Eager Loadしたリレーション、集計結果を、手動でキャッシュキーを指定せずにアプリケーションのキャッシュへ保存します。モデルの作成・更新・削除時には関連するキャッシュエントリーが自動的に消去され、belongsToManyリレーションのpivotテーブルの変更にも対応します。
- laravel-model-caching は無料で使えますか?ライセンスは?
- laravel-model-caching は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- laravel-model-caching は今もメンテナンスされていますか?
- 活発にメンテナンス中。laravel-model-caching の最終コミットは 2026年11月3日 です。
- laravel-model-caching は何に使えますか?
- 同じEloquentクエリを何度も実行する、読み取り中心のLaravelページを高速化する Cache::rememberやforgetを使った手動のキャッシュ処理を書かずにモデルデータをキャッシュする テナントごとにキャッシュを分離する必要があるマルチテナントのLaravelアプリで利用する AWSのマネージドキャッシュストアとしてDynamoDBを利用するアプリケーションで使う
- laravel-model-caching のインストール方法は?
- Composer でパッケージをインストールします: composer require mike-bronner/laravel-model-caching モデルが継承するベースモデルに Cachable trait を追加します 必要に応じて設定ファイルを公開します: php artisan modelCache:publish --config
- laravel-model-caching はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/mike-bronner/laravel-model-caching
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
遅いデータベースクエリを記録して重複をグループ化し、LLMでインデックスやクエリ書き換えを提案する、ダッシュボード内蔵のLaravelパッケージです。
迅速な開発と、すっきりとした実用的な設計を促す高水準のPython Webフレームワーク。
Memcache、Redis/Valkey、HTTP、Postgresのプロトコルに対応し、単一のCファイルとして組み込める、低レイテンシなC製キャッシュサーバーです。
.NET向けRedisクライアントライブラリ。Redis SentinelとClusterに対応し、同期・非同期APIを提供します。
ルーティング、ORM、マイグレーション、キュー、リアルタイムブロードキャストを備えた、表現力豊かな構文のPHP Webアプリケーションフレームワーク。