src/EventSubscriber/LogApiRequestsSubscriber.php line 10

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  4. use Symfony\Component\HttpKernel\Event\TerminateEvent;
  5. class LogApiRequestsSubscriber implements EventSubscriberInterface
  6. {
  7.     public function onKernelTerminate(TerminateEvent $event)
  8.     {
  9.         $request $event->getRequest();
  10.         $uri $request->getRequestUri();
  11.         if (=== strncmp($uri'/api/'5)) {
  12.             $log '>>>> Requête '.date('Y/m/d H:i:s').' from '.$request->getClientIp().' : ';
  13.             $log .= $request->getMethod().' '.$uri."\n";
  14.             $content $request->getContent();
  15.             if ('' !== $content) {
  16.                 $log .= $content;
  17.                 $log .= "\n";
  18.             }
  19.             $log .= "\n";
  20.             $response $event->getResponse();
  21.             $log .= '<<<< Réponse '.date('Y/m/d H:i:s')." :\n";
  22.             //$log[] = $response->headers->__toString();
  23.             $content $response->getContent();
  24.             if ('' !== $content) {
  25.                 $log .= $content;
  26.                 $log .= "\n";
  27.             }
  28.             $log .= "\n--------------------------------------------------------------------------------\n";
  29.             $file dirname(dirname(__DIR__)).'/public/requests.log';
  30.             file_put_contents($file$logFILE_APPEND);
  31.         }
  32.     }
  33.     public static function getSubscribedEvents()
  34.     {
  35.         return [
  36.             'kernel.terminate' => 'onKernelTerminate',
  37.         ];
  38.     }
  39. }