src/EventListener/AdminLogListener.php line 37

Open in your IDE?
  1. <?php
  2. /**
  3.  * Created by PhpStorm.
  4.  * User: pasls
  5.  * Date: 9/18/19
  6.  * Time: 1:11 PM
  7.  */
  8. namespace App\EventListener;
  9. use App\Entity\Admin;
  10. use App\Util\LogHandler;
  11. use Symfony\Component\HttpFoundation\RequestStack;
  12. use Symfony\Component\HttpKernel\Event\RequestEvent;
  13. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  14. class AdminLogListener
  15. {
  16.     protected $requestStack;
  17.     protected $logHandler;
  18.     protected $tokenStorage;
  19.     /**
  20.      * AdminLogListener constructor.
  21.      *
  22.      * @param TokenStorageInterface $tokenStorage
  23.      * @param RequestStack $requestStack
  24.      * @param LogHandler $logHandler
  25.      */
  26.     public function __construct(TokenStorageInterface $tokenStorageRequestStack $requestStackLogHandler $logHandler)
  27.     {
  28.         $this->tokenStorage $tokenStorage;
  29.         $this->logHandler $logHandler;
  30.         $this->requestStack $requestStack;
  31.     }
  32.     public function onKernelRequest(RequestEvent $event)
  33.     {
  34.         if($this->tokenStorage->getToken()) {
  35.             $user $this->tokenStorage->getToken()->getUser();
  36.             if ($user instanceof Admin) {
  37.                 $request $this->requestStack->getCurrentRequest();
  38.                 $record['client_ip'] = $request->getClientIp();
  39.                 $record['client_port'] = $request->getPort();
  40.                 $record['uri'] = $request->getUri();
  41.                 $record['query_string'] = $request->getQueryString();
  42.                 $record['method'] = $request->getMethod();
  43.                 $record['request'] = $request->request->all();
  44.                 $this->logHandler->write(['message' => "Route " $request->getPathInfo() . " accessed."'extra' => $record]);
  45.             }
  46.         }
  47.     }
  48. }