RouteCache.php 707 B

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. namespace App\Http\Middleware;
  3. use Closure;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Support\Facades\Cache;
  6. use Illuminate\Support\Str;
  7. class RouteCache
  8. {
  9. /**
  10. * Handle an incoming request.
  11. *
  12. * @param \Illuminate\Http\Request $request
  13. * @param \Closure $next
  14. * @return mixed
  15. */
  16. public function handle($request, Closure $next)
  17. {
  18. $response = Cache::remember($this->makeCacheKey($request), 1, function () use($next, $request) {
  19. return $next($request);
  20. });
  21. return $response;
  22. }
  23. protected function makeCacheKey(Request $request) {
  24. $url = Str::slug($request->url());
  25. return "route:$url";
  26. }
  27. }