zidbih/laravel-auto-cache-clear
Composer 安装命令:
composer require zidbih/laravel-auto-cache-clear
包简介
A Laravel package that automatically clears cache for Eloquent models using PHP attributes. Define cache-clearing behavior directly above your model with the #[ClearCacheWhen] attribute, and let the package handle the rest.
README 文档
README
A Laravel package that automatically clears cache for Eloquent models using PHP attributes. Define cache-clearing behavior directly above your model with the #[ClearCacheWhen] attribute, and let the package handle the rest.
Features
- Attribute-Based Configuration: Use the
#[ClearCacheWhen]attribute to define when cache should be cleared for a model. - Automatic Cache Clearing: Automatically clears cache when specified model events occur.
- Dynamic Cache Keys: Define custom cache keys using placeholders like
{model}and{id}. - Static Cache Keys: Clear static cache keys (e.g.,
"users") when model events occur. - Flexible and Extensible: Works with any Eloquent model.
Installation
1. Install the Package
composer require zidbih/laravel-auto-cache-clear
Usage
1. Add the #[ClearCacheWhen] Attribute to Your Model
namespace App\Models; use Illuminate\Database\Eloquent\Model; use Zidbih\LaravelAutoCacheClear\Attributes\ClearCacheWhen; use Zidbih\LaravelAutoCacheClear\Traits\AutoClearsCache; #[ClearCacheWhen(['created', 'updated', 'deleted'], cacheKey: 'user:{id}:details', staticKeys: ['users'])] class User extends Model { use AutoClearsCache; }
Attribute Parameters
events: Model events that should trigger cache clearing (e.g.,['created', 'updated', 'deleted','restored']).cacheKey: Cache key pattern (default:{model}:{id}). You can use placeholders like{model}and{id}.staticKeys: An array of static cache keys to clear (e.g.,['users','posts']).
2. Use the AutoClearsCache Trait
use Zidbih\LaravelAutoCacheClear\Traits\AutoClearsCache; class User extends Model { use AutoClearsCache; }
3. Cache Data in Your Application
use Illuminate\Support\Facades\Cache; // Cache a list of users $users = Cache::remember('users', 60, function () { return User::all(); }); // Cache a single user $user = Cache::remember('user:1:details', 60, function () { return User::find(1); });
When a user is created, updated, or deleted, the cache keys user:1:details and users will automatically be cleared.
Example Workflow
1. Define the Model
#[ClearCacheWhen(['created', 'updated', 'deleted'], staticKeys: ['users'])] class User extends Model { use AutoClearsCache; }
2. Cache Data
$users = Cache::remember('users', 60*60*24, fn () => User::all());
3. Trigger Model Events
When a user is created, updated, or deleted, the following will be cleared:
- The static key:
users
Contributing
Contributions are welcome! Feel free to open an issue or submit a pull request.
License
This package is open-source software licensed under the MIT license.
Credits
Developed by Med Mahmoud Hadaya (zidbih)
Inspired by the Laravel community.
zidbih/laravel-auto-cache-clear 适用场景与选型建议
zidbih/laravel-auto-cache-clear 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 13 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 03 月 09 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 zidbih/laravel-auto-cache-clear 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 zidbih/laravel-auto-cache-clear 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 13
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 21
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-03-09