[扩展推荐] 三个 Laravel 的 HTTP 缓存扩展包推荐

翻译 Summer ⋅ 于 3个月前 ⋅ 1280 阅读 ⋅ 原文地址

站点的翻译文章创建时,您将第一时间收到通知。

这是一篇社区协同翻译的文章,已完成翻译,更多信息请点击 协同翻译介绍

file

我们写过 Joseph Silber 的  Laravel页面缓存  包,这个包为 Laravel 提供了静态 HTTP 响应缓存。在 Laravel 中还有其它一些针对静态 HTTP 响应缓存的开源包, 所以我们认为我们应该整理一个关于 HTTP 缓存包的列表,供大家查看。这些 HTTP 缓存包都有独特的功能,使得它们在处理一些相似功能时会有不同的表现,所以需要根据需求来选择扩展。

followyounger 翻译于 3个月前

barryvdh/laravel-httpcache

Barry vd. Heuvel 的 barryvdh/laravel-httpcache 扩展包 --- 最初在2013年为 Laravel 4.1 而生 --- 现在 Laravel 5 也适用。

该包使用 barryvdh/laravel-stack-middleware 与 Laravel 5 一起使用 StackPHP 中间件 ,从而允许你的 Laravel 应用使用 HTTPCache

使用这个包,你可以为响应页面设置一个生命周期 TTL 或者 最大缓存时间。

Route::get('my-page', function(){
   return Response::make('Hello!')->setTtl(60); // 缓存 1 分钟
});

你也可以使用路由中间件:

protected $routeMiddleware = [
    // ...
    'ttl' => \Barryvdh\HttpCache\Middleware\SetTtl::class,
];

Route::get('my-page', function(){
   return 'Hello'
})->middleware('ttl:60'); // 缓存 1 分钟

点击 barryvdh/laravel-httpcache GitHub repo 查看更多信息。

一颗红心 翻译于 3个月前

spatie/laravel-responsecache

Spatie的  laravel-responsecache  扩展包缓存全部响应以加速你的 Laravel 应用。我喜欢这个扩展包,它利用了现有的定义在 config/cache.php  文件 的缓存驱动(比如 redis, file, memcached )  。

你可以使用中间件定义一个指定缓存时间的路由群组:

Route::group(function() {
   Route::get('/another-special-snowflake', 'AnotherSnowflakeController@index');

   Route::get('/yet-another-special-snowflake', 'YetAnotherSnowflakeController@index');
})->middleware('cacheResponse:10');

这个扩展包另一个实用的功能是可以在程序中清除整个缓存或特定的URIs:

ResponseCache::clear();

// 清除几个 URIs
ResponseCache::forget(['/some-uri', '/other-uri']);

或者使用artisan命令

php artisan responsecache:clear

该扩展包还允许你提供一个自定义的缓存配置文件,它必须实现给定的 CacheProfile 接口。定义一个自定义的缓存配置文件可以让你精确的控制哪些请求被缓存以及缓存时间长短。

Insua 翻译于 3个月前

silber/page-cache

Joseph Silber 的 Laravel Page Cache 扩展包是另一个 HTTP 缓存包,是静态网站建设者极好的选择。 你可以从静态网站获得很好的性能,没有额外的生成步骤,也不会牺牲通过 PHP 实现完全动态功能的能力。

这个包的工作原理是通过路由中的中间件来生成静态的HTML文件。和串行服务器配合工作时,像 Nginx 之类的,缓存响应不会触及到应用服务器:

对于真正的静态页面,真的没有理由必须通过 PHP 来展示静态页面。 直接从磁盘提供HTML页面读取速度更快,更节省服务器开销。

解决方案? 整页缓存。

使用这个包里的中间件,对自任何指定的请求,你都可以有选择的进行静态缓存。 之后访问的这个页面将直接返回静态的 HTML 页面!

一颗红心 翻译于 3个月前

无论你想缓存你所有的路由还是永不变更的几个选定的路由,这个包提供了一个完美的方法来减轻你的 PHP 应用的请求压力,并且让 Nginx 能够给静态文件提供闪电般快速的请求。

其它?

你在 Laravel 中有用任何其它的包来做 HTTP 缓存么?在 Twitter @laravelnews 上告诉我们!

truesnow 翻译于 3个月前

原文地址:https://laravel-news.com/http-cache-pack...

译文地址:https://laravel-china.org/topics/10988/t...


本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

本帖已被设为精华帖!
回复数量: 0
暂无回复~
您需要登陆以后才能留下评论!

Composer 中国全量镜像

Top 250 扩展包

Lumen 中文文档

Laravel 速查表

Laravel 中文文档

Laravel 项目开发规范

Laravel 开发环境部署

Composer 中文文档

Elasticsearch-PHP 中文文档

Lumen 中文文档

GraphQL PHP 中文文档

社区文档撰写指南

TDD 构建 Laravel 论坛笔记

PHP PSR 标准规范

PHP 设计模式全集

Dingo API 中文文档