Skip to content

Instantly share code, notes, and snippets.

@dlimars
Last active December 11, 2015 16:03
Show Gist options
  • Save dlimars/84d6a0d7f3ea04c8c78d to your computer and use it in GitHub Desktop.
Save dlimars/84d6a0d7f3ea04c8c78d to your computer and use it in GitHub Desktop.
1) crie seu Middleware em app\Http\Middleware\RouteCache.php
<?php
namespace App\Http\Middleware;
use Closure;
use Cache;
class RouteCache
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$key = $this->getRouteKey($request);
if(Cache::has($key)) {
return Cache::get($key);
}
return $next($request);
}
public function terminate($request, $response)
{
if ($response->getContent()) {
$key = $this->getRouteKey($request);
if (!Cache::has($key)) {
$minutes = 1;
Cache::add($key, $response->getContent(), $minutes);
}
}
}
private function getRouteKey($request){
return $Request->url();
}
}
2) Registre o middleware no app\Http\Kernel.php
protected $routeMiddleware = [
'cache' => \App\Http\Middleware\RouteCache::class
];
3) Use o Middleware em suas rotas:
Route::group(['middleware' => 'cache'], function () {
Route::get('rota-cacheada', 'HomeController@index');
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment