AfterAll.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. namespace demo\Middleware;
  3. use Silex\Application;
  4. use Symfony\Component\HttpFoundation\JsonResponse;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\Response;
  7. class AfterAll {
  8. /**
  9. * Arguments for before() middleware are fixed, unlike those of controllers.
  10. *
  11. * @param \Symfony\Component\HttpFoundation\Request $request
  12. * @param \Symfony\Component\HttpFoundation\Response $response
  13. * @param \Silex\Application $app
  14. *
  15. * @return \Symfony\Component\HttpFoundation\Response|void
  16. */
  17. public function __invoke(Request $request, Response $response, Application $app) {
  18. $MESSAGE = "<p>In aAM</p>\n";
  19. if ($response instanceof JsonResponse) {
  20. $content = $response->getContent();
  21. $raw = json_decode($content, TRUE);
  22. $raw[] = $MESSAGE;
  23. $newContent = json_encode($raw);
  24. $response->setContent($newContent);
  25. return $response;
  26. }
  27. // Only echo info on text responses.
  28. $ct = $response->headers->get('Content-Type');
  29. if (isset($ct) && strpos($ct, 'text') !== 0) {
  30. return;
  31. }
  32. echo $MESSAGE;
  33. }
  34. }