「Laravel Page cache」是一款由 Joseph Silber 设计开发的,通过将 HTTP GET 响应做页面静态化缓存处理,以加速页面加载的插件。该插件既可以将所有的路由进行页面静态化缓存,也可以只针对部分路由进行页面静态化处理,因此使用这款插件对整个 PHP 项目都会大有裨益:
虽然近些年类似 Jekyll 和 Jigsaw 这类静态网站构建工具十分流行,不过,PHP 动态网站依然有其实用价值,即使是纯静态网站也是如此。在合适的场景下使用 PHP 来构建网站,可以轻松添加新功能,而无需将更新部分推送到服务器,这样可以避免网站重新构建的步骤。
又或者说,对于完全是静态页面的网站来讲,我完全找不出理由来解释为什么需要将它部署到 Web 服务器中。直接将 HTML 页面部署到磁盘的某个目录中,会比部署在 Web 服务器中要快得多。
在实现页面静态化缓存前,还需要对 Web 服务器进行一些配置,以保证插件可以在缓存目标目录中能够生成静态文件。插件的 readme 文件中有讲解如何配置 Apache 和 Nginx 服务器重写规则的说明。
使用「Laravel Page cache」实现整站页面静态化,配置稍微有些复杂。
如果需要对所有的 HTTP GET 请求的响应进行缓存,需要在 web 中间件组中加入该插件的中间件。
protected $middlewareGroups = [ 'web' => [ \Silber\PageCache\Middleware\CacheResponse::class, /* ... 保留现有的中间件 */ ], ];
您还可以为此中间件定义个别名,以便其应用于单个路由或路由组:
protected $routeMiddleware = [ 'page-cache' => Silber\PageCache\Middleware\CacheResponse::class, /* ... 保留现有的中间件别名 */ ];
之后可以在单个路由中使用这个别名:
Route::middleware('page-cache')->get('/example', 'ExampleController);
缓存命中也就意味着 PHP 应用,可以通过使用静态文件提供比 Web 服务器解析更快的服务器响应。
了解更多
扩展包 JosephSilber/page-cache 托管在 GitHub 上。作者 Joseph Silber 是一个活跃的 Laravel 贡献者,同时致力于框架以及提供像 Laravel Bouncer 这样的优秀扩展包(如果你想了解更多,我们对比了 Bouncer 和 Laravel Permission 扩展包)。Joseph 最近提交了一个很好的 PR(Pull Request:合并请求) 给 laravel/framework,增加了传递一个 闭包作为任意帮助函数的第二个参数 的功能。
本站所有资源都来源于网络收集、网友提供或者交换而来!如果侵犯了您的权益,请及时联系本站客服,我们立刻删除!
猜你还喜欢
- 10-19 H5页面获取微信用户openid极简攻略
- 10-19 php项目中 composer update install 区别
- 10-16 vue-h5微信公众号 网页授权登录(静默授权)
- 10-16 vue微信H5自定义分享兼容ios、PC、安卓
- 10-16 laravel SimpleQrCode 扩展包生成二维码使用记录
- 10-16 [最新]mac安装ImageMagick与PHP扩展Imagick
- 10-16 mac安装ImageMagick与PHP扩展imagick
- 10-16 laravel常用目录路径获取方法
- 10-16 [扩展推荐] Laravel 的整站静态页面缓存
- 10-16 Github webhooks 自动部署博客文章,使用总结【含视频】
- 10-16 PHPExcel 设置单元格受保护,不可编辑,或需要密码
- 10-16 如何创建受密码保护的pdf文件
暂无评论,来添加一个吧。