Bootstrap.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace Dcat\Admin\Middleware;
  3. use Dcat\Admin\Admin;
  4. use Dcat\Admin\Support\Helper;
  5. use Illuminate\Http\Request;
  6. class Bootstrap
  7. {
  8. public function handle(Request $request, \Closure $next)
  9. {
  10. $this->includeBootstrapFile();
  11. $this->setupScript();
  12. $this->fireEvents();
  13. $response = $next($request);
  14. $this->storeCurrentUrl($request);
  15. return $response;
  16. }
  17. protected function includeBootstrapFile()
  18. {
  19. if (is_file($bootstrap = admin_path('bootstrap.php'))) {
  20. require $bootstrap;
  21. }
  22. }
  23. protected function setupScript()
  24. {
  25. $token = csrf_token();
  26. Admin::script("Dcat.token = \"$token\";");
  27. }
  28. protected function fireEvents()
  29. {
  30. Admin::callBooting();
  31. Admin::callBooted();
  32. }
  33. /**
  34. * @param \Illuminate\Http\Request
  35. *
  36. * @return void
  37. */
  38. protected function storeCurrentUrl(Request $request)
  39. {
  40. if (
  41. $request->method() === 'GET'
  42. && $request->route()
  43. && ! Helper::isAjaxRequest()
  44. && ! $request->prefetch()
  45. ) {
  46. Helper::setPreviousUrl($request->fullUrl());
  47. }
  48. }
  49. }