rose1988c/laravel-routecache-middleware

Laravel使用路由中间件实现页面缓存

5.1 2015-11-13 14:52 UTC

This package is auto-updated.

Last update: 2024-09-23 12:32:50 UTC


README

通过路由添加页面缓存。

缓存最好不放在程序逻辑内部,找缓存会很累,我建议缓存放在路由中。

缓存放在路由里面,使用方法如下:

    Route::group(['middleware' => 'cache:10'], function(){
        Route::get('/', 'HomeController@index');
    });

###安装

添加到composer.json

"rose1988c/laravel-routecache-middleware":"dev-master"

or

composer require rose1988c/laravel-routecache-middleware:dev-master

通过在config/app.php的provider部分添加服务提供者进行注册

    'providers' => [
        ...
        Rose1988c\RouteCache\RouteCacheServiceProvider::class
        ...

以防万一

    composer dump-autoload

发布迁移和配置文件

    php artisan vendor:publish

添加到app\Http\Kernel.php

    'cache' => \Rose1988c\RouteCache\CacheMiddleWare::class,
    'flush' => \Rose1988c\RouteCache\FlushMiddleWare::class,

设置Route.php

    // set cache lifetime 10
    Route::group(['middleware' => 'cache:10'], function(){
        Route::get('/', 'DemoController@index');
    });

清除缓存

  • flush -> 清除当前请求URL
  • flush:ref -> 清除引用URL,常用于AJAX
  • flush:url -> 清除指定URL,常用于管理和清理指定URL,添加参数 ?flushurl=http://xxxxx
    Route::group(['middleware' => 'flush'], function(){
        Route::any('switchP', 'HomeController@switchP');
    });

    Route::group(['middleware' => 'flush:ref'], function(){
        Route::any('switchP', 'HomeController@switchP');
    });

    // test url: http://192.168.141.129:8084/cleanCache?flushurl=http://192.168.141.129:8084/wealthbalance
    // result  : ok
    Route::group(['middleware' => 'flush:url'], function(){
        Route::any('cleanCache', function(){
            echo 'hello, world!';
        });
    });