MiddlewareApplication.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace TestApp\Http;
  3. use Cake\Http\BaseApplication;
  4. use Psr\Http\Message\ResponseInterface;
  5. use Psr\Http\Message\ServerRequestInterface;
  6. class MiddlewareApplication extends BaseApplication
  7. {
  8. /**
  9. * @param \Cake\Http\MiddlewareQueue $middleware The middleware stack to set in your App Class
  10. * @return \Cake\Http\MiddlewareQueue
  11. */
  12. public function middleware($middleware)
  13. {
  14. $middleware
  15. ->add(function ($req, $res, $next) {
  16. $res = $res->withHeader('X-First', 'first');
  17. return $next($req, $res);
  18. })
  19. ->add(function ($req, $res, $next) {
  20. $res = $res->withHeader('X-Second', 'second');
  21. return $next($req, $res);
  22. })
  23. ->add(function ($req, $res, $next) {
  24. if ($req->hasHeader('X-pass')) {
  25. $res = $res->withHeader('X-pass', $req->getHeaderLine('X-pass'));
  26. }
  27. $res = $res->withHeader('X-Second', 'second');
  28. return $next($req, $res);
  29. });
  30. return $middleware;
  31. }
  32. /**
  33. * @param \Psr\Http\Message\ServerRequestInterface $request The request
  34. * @param \Psr\Http\Message\ResponseInterface $request The response
  35. * @param callable $next The next middleware
  36. * @return \Psr\Http\Message\ResponseInterface
  37. */
  38. public function __invoke(ServerRequestInterface $req, ResponseInterface $res, $next)
  39. {
  40. return $res;
  41. }
  42. }