Utworzyłem taki EventListener:
<?php namespace AppBundle\EventListener; use AppBundle\Model\ConfigurationManager; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpKernel\Event\GetResponseEvent; use Symfony\Component\Routing\Router; class MaintenanceListener { private $container; private $router; private $configurationManager; public function __construct(ConfigurationManager $configurationManager, Router $router, ContainerInterface $container) { $this->configurationManager = $configurationManager; $this->router = $router; $this->container = $container; } public function onKernelRequest(GetResponseEvent $responseEvent) { $request = $responseEvent->getRequest(); if($this->configurationManager->get('site_disabled') && $request->get('_route') !== 'maintenance' && strpos($request->get('_route'), 'admin_') === false) { $responseEvent->setResponse(new RedirectResponse($this->router->generate('maintenance'))); } } }
services.yml:
Kod
app.maintenance_listener:
class: AppBundle\EventListener\MaintenanceListener
tags:
- { name: kernel.event_listener, event: kernel.request }
class: AppBundle\EventListener\MaintenanceListener
tags:
- { name: kernel.event_listener, event: kernel.request }
Niby działa jak należy, jednak wchodząc do panelu admina mam błąd w konsoli spowodowany debuggerem:
Kod
Uncaught TypeError: Cannot read property 'nodeValue' of null
at index:226
at index:226
at XMLHttpRequest.xhr.onreadystatechange (index:226)
at index:226
at index:226
at XMLHttpRequest.xhr.onreadystatechange (index:226)
Błąd ten niestety rozwala mi panel administracyjny bo znajduje się na nim dużo js. Ktoś się spotkał z podobnym przypadkiem lub wie co robię źle?