sevenlab/laravel-responsecache
Composer 安装命令:
composer require sevenlab/laravel-responsecache
包简介
Cache responses in a Laravel application
README 文档
README
Cache responses
This Laravel package can cache an entire response. By default it will cache all successful GET-requests for a week. This could potentially speed up the response quite considerably.
So the first time a request comes in the package will save the response before sending it to the users. When the same request comes in again we're not going through the entire application but just respond with the saved response.
The package is based on spatie/laravel-responsecache but uses the defined route names so the cached responses can easily be cleared without having to clear the whole cache.
Installation
You can install the package via Composer:
composer require sevenlab/laravel-responsecache
The package will automatically register itself.
You can publish the config file with:
php artisan vendor:publish --provider="SevenLab\ResponseCache\ResponseCacheServiceProvider"
This is the contents of the published config file (config/responsecache.php):
return [ /* * Determine if the response cache middleware should be enabled. */ 'enabled' => env('RESPONSECACHE_ENABLED', true), /* * Specify the tag name that will be used for the cache. */ 'tag' => env('RESPONSECACHE_TAG', 'responsecache'), ];
And finally you should install the provided middlewares in the HTTP kernel (app/Http/Kernel.php).
... protected $routeMiddleware = [ ... 'cacheResponse' => \SevenLab\ResponseCache\Middleware\CacheResponse::class, 'doNotCacheResponse' => \SevenLab\ResponseCache\Middleware\DoNotCacheResponse::class, ]; ...
Usage
By default it will cache all successful GET-requests for a week. Logged in users will each have their own separate cache.
Caching specific routes
When using the route middleware you can specify the number of minutes these routes should be cached:
// cache this route for 5 minutes Route::get('/my-special-snowflake', 'SnowflakeController@index')->middleware('cacheResponse:5'); // cache all these routes for 10 minutes Route::group(function() { Route::get('/another-special-snowflake', 'AnotherSnowflakeController@index'); Route::get('/yet-another-special-snowflake', 'YetAnotherSnowflakeController@index'); })->middleware('cacheResponse:10');
Preventing a route from being cached
Requests can be ignored by using the doNotCacheResponse-middleware. This middleware can be assigned to routes and controllers.
Using the middleware on a route:
Route::get('/auth/logout', 'AuthController@getLogout')->name('auth.logout')->middleware('doNotCacheResponse');
Alternatively you can add the middleware to a controller:
class AuthController extends Controller { public function __construct() { $this->middleware('doNotCacheResponse', ['only' => ['getLogout']]); } }
Clearing specific routes
Specific routes can be cleared with:
ResponseCache::forget(['auth.logout']);
The same can be accomplished by issuing this artisan command:
php artisan responsecache:forget auth.logout
Clearing all routes
The entire cache can be cleared with:
ResponseCache::clear();
This will clear everything from the cache store specified in the config-file (config/cache.php) with the tag specified in the responsecache-file (config/responsecache.php).
The same can be accomplished by issuing this artisan command:
php artisan responsecache:clear
Credits
sevenlab/laravel-responsecache 适用场景与选型建议
sevenlab/laravel-responsecache 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.63k 次下载、GitHub Stars 达 1, 最近一次更新时间为 2023 年 01 月 09 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「cache」 「response」 「laravel」 「laravel-responsecache」 「responsecache」 「sevenlab」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 sevenlab/laravel-responsecache 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 sevenlab/laravel-responsecache 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 sevenlab/laravel-responsecache 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
repository php library
HTTP request logger middleware for Laravel
Laravel 5 - Repositories to the database layer
Class to generate a standard structure for api json responses
Rinvex Repository is a simple, intuitive, and smart implementation of Active Repository with extremely flexible & granular caching system for Laravel, used to abstract the data layer, making applications more flexible to maintain.
Laravel 5 - Repositories to the database layer
统计信息
- 总下载量: 1.63k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 17
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-01-09