3v4l.org

run code in 300+ PHP versions simultaneously
<?php namespace App\EventSubscriber; use App\Controller\TokenAuthenticatedController; use App\Repository\UserRepository; use App\Repository\UserTokenRepository; use App\Response\Json\ErrorJsonResponse; use App\Response\Json\SuccessJsonResponse; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\HttpKernel\Event\FilterControllerEvent; use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException; use Symfony\Component\HttpKernel\KernelEvents; class TokenSubscriber implements EventSubscriberInterface { private $tokens; /** * @var UserTokenRepository */ private $userTokenRepository; /** * @var UserRepository */ private $userRepository; public function __construct( UserRepository $userRepository, UserTokenRepository $userTokenRepository ) { $this->userRepository = $userRepository; $this->userTokenRepository = $userTokenRepository; } public function onKernelController(FilterControllerEvent $event) { $controller = $event->getController(); // when a controller class defines multiple action methods, the controller // is returned as [$controllerInstance, 'methodName'] if (is_array($controller)) { $controller = $controller[0]; } if (in_array("App\Controller\TokenAuthenticatedController", class_implements($controller))) { $user = $this->userRepository->getAuthUser($this->userTokenRepository); if (!is_object($user)) { return new ErrorJsonResponse("Пожалуйста авторизуйтесь.", [ ], 403); } die("we have token. go next"); } else { var_dump($controller); die; } } public static function getSubscribedEvents() { return [ KernelEvents::CONTROLLER => 'onKernelController', ]; } }
Output for 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.28, 8.4.1 - 8.4.14, 8.5.0 - 8.5.1
Fatal error: Uncaught Error: Interface "Symfony\Component\EventDispatcher\EventSubscriberInterface" not found in /in/2b1aS:13 Stack trace: #0 {main} thrown in /in/2b1aS on line 13
Process exited with code 255.
Output for 8.4.15
/bin/php-8.4.15: /usr/lib/libm.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libm.so.6: version `GLIBC_2.35' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libc.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.4.15)
Process exited with code 1.
Output for 7.4.0 - 7.4.33
Fatal error: Uncaught Error: Interface 'Symfony\Component\EventDispatcher\EventSubscriberInterface' not found in /in/2b1aS:13 Stack trace: #0 {main} thrown in /in/2b1aS on line 13
Process exited with code 255.
Output for 7.2.0 - 7.2.33, 7.3.0 - 7.3.33
Fatal error: Interface 'Symfony\Component\EventDispatcher\EventSubscriberInterface' not found in /in/2b1aS on line 13
Process exited with code 255.

preferences:
190.73 ms | 410 KiB | 5 Q