mnshankar/laravel-cache-route

缓存整个路由的输出(HTML)以提高您的Laravel应用程序的速度

v1.0 2017-05-26 15:23 UTC

This package is not auto-updated.

Last update: 2024-09-23 15:56:21 UTC


README

这是一个Laravel 5.0+/PHP 5.4+包,可以将整个“get”请求的响应缓存起来,以便后续对相同URL的请求可以大幅提高速度。

安装

已尽最大努力确保该包的安装和使用非常简单。在“require”该包之后,您就可以开始使用了!无需设置服务提供者、外观、配置文件等。

$ composer require mnshankar/laravel-cache-route

使用

编辑您的http kernel.php文件,包括以下内容

'cache.route'=>'mnshankar\Cache\Middleware\CacheRoute',

现在,使用中间件来缓存整个页面的HTML输出,无论是从控制器还是从路由,如下所示

  1. 在您的控制器中

    function __construct()
    {
        $this->middleware('cache.route');
    }
  2. 在您的路由中

    使用Laravel 5.0

    Route::get('my/page', ['middleware' => 'cache-route', function()
    {
        //
    }]);

    使用Laravel 5.1+

    您可以使用Laravel 5.0风格继续使用,或者使用链式调用

    Route::get('/', function () {
        //
    })->middleware(['cache-route']);

    您还可以使用路由分组。请查阅Laravel文档了解中间件的相关内容 https://laravel.net.cn/docs/5.2/middleware

配置选项

该包使用两个配置选项(通过环境参数设置)

  1. 缓存TTL(生存时间)

    CACHE_TTL=30

    此参数指定了30分钟的缓存TTL值

    请注意,您始终可以使用php artisan cache:flush来清除您的应用程序缓存

  2. 启用缓存(默认为true)

    CACHE_ENABLE=false

    此参数可以用来关闭缓存

想法

在使用此类整个页面缓存时,请务必谨慎。请记住,缓存的内容对您的所有用户都是可见的。

  1. 对于“主要静态”内容,请大胆尝试!
  2. 对于“主要动态”内容或高度用户自定义的内容,请避免使用此策略。用户特定信息是在服务器端收集的。因此,您本质上需要连接到服务器。

好的经验法则:如果两个不同的用户在点击相同URL时看到不同的页面,则不要使用此策略缓存输出。另一种选择可能是缓存数据库查询。