Просмотр файла app/middleware.php

Размер файла: 1.75Kb
  1. <?php
  2.  
  3. declare(strict_types=1);
  4.  
  5. use App\Handlers\HttpErrorHandler;
  6. use App\Middleware\IpAddressMiddleware;
  7. use App\Middleware\StartSessionMiddleware;
  8. use App\Middleware\TrailingSlashMiddleware;
  9. use App\Middleware\UserAuthMiddleware;
  10. use Psr\Container\ContainerInterface;
  11. use Slim\App;
  12. use Slim\Middleware\MethodOverrideMiddleware;
  13.  
  14. return function (App $app, ContainerInterface $container) {
  15. /**
  16. * The routing middleware should be added earlier than the ErrorMiddleware
  17. * Otherwise exceptions thrown from it will not be handled by the middleware
  18. */
  19. $app->addRoutingMiddleware();
  20.  
  21. // Add MethodOverride middleware
  22. $app->add(MethodOverrideMiddleware::class);
  23.  
  24. // Trailing slash middleware
  25. $app->add(TrailingSlashMiddleware::class);
  26.  
  27. // UserAuth middleware
  28. $app->add(UserAuthMiddleware::class);
  29.  
  30. // Session middleware
  31. $app->add(StartSessionMiddleware::class);
  32.  
  33. // Ip address middleware
  34. $app->add(IpAddressMiddleware::class);
  35.  
  36. // Define Custom Error Handler
  37. $errorHandler = new HttpErrorHandler($app->getCallableResolver(), $app->getResponseFactory());
  38.  
  39. /**
  40. * Add Error Middleware
  41. *
  42. * @param bool $displayErrorDetails -> Should be set to false in production
  43. * @param bool $logErrors -> Parameter is passed to the default ErrorHandler
  44. * @param bool $logErrorDetails -> Display error details in error log
  45. * @param LoggerInterface|null $logger -> Optional PSR-3 Logger
  46. *
  47. * Note: This middleware should be added last. It will not handle any exceptions/errors
  48. * for middleware added after it.
  49. */
  50. $errorMiddleware = $app->addErrorMiddleware(true, true, true);
  51. $errorMiddleware->setDefaultErrorHandler($errorHandler);
  52. };