$listener[1] ??= '__invoke'; } foreach ($this->listeners[$eventName] as $priority => &$listeners) { foreach ($listeners as $k => &$v) { if ($v !== $listener && \is_array($v) && isset($v[0]) && $v[0] instanceof \Closure && 2 >= \count($v)) { $v[0] = $v[0](); $v[1] ??= '__invoke'; } if ($v === $listener || ($listener instanceof \Closure && $v == $listener)) { unset($listeners[$k], $this->sorted[$eventName], $this->optimized[$eventName]); $this->dispatcher->addSubscriber($subscriber); } public function removeListener(string $eventName, callable $listener): void { $this->dispatcher->removeListener($eventName, $listener); } public function removeSubscriber(EventSubscriberInterface $subscriber): void { $this->dispatcher->removeSubscriber($subscriber); } public function removeListener(string $eventName, callable $listener): void { /** @var callable(object): void $listener - Specify generic callback interface callers can provide more specific implementations */ $this->dispatcher->removeListener($eventName, $listener); } public function removeSubscriber(EventSubscriberInterface $subscriber): void { $this->dispatcher->removeSubscriber($subscriber); } public function removeListener(string $eventName, callable $listener): void { /** @var callable(object): void $listener - Specify generic callback interface callers can provide more specific implementations */ $this->dispatcher->removeListener($eventName, $listener); } public function removeSubscriber(EventSubscriberInterface $subscriber): void { $this->dispatcher->removeSubscriber($subscriber); foreach ($this->dispatcher->getListeners($eventName) as $listener) { $priority = $this->getListenerPriority($eventName, $listener); $wrappedListener = new WrappedListener($listener instanceof WrappedListener ? $listener->getWrappedListener() : $listener, null, $this->stopwatch, $this); $this->wrappedListeners[$eventName][] = $wrappedListener; $this->dispatcher->removeListener($eventName, $listener); $this->dispatcher->addListener($eventName, $wrappedListener, $priority); $this->callStack[$wrappedListener] = [$eventName, $this->currentRequestHash]; } } if (null !== $this->logger && $event instanceof StoppableEventInterface && $event->isPropagationStopped()) { $this->logger->debug(\sprintf('The "%s" event is already stopped. No listeners have been called.', $eventName)); } $this->preProcess($eventName); try { $this->beforeDispatch($eventName, $event); try { $e = $this->stopwatch->start($eventName, 'section'); try { */ private function handleRaw(Request $request, int $type = self::MAIN_REQUEST): Response { // request $event = new RequestEvent($this, $request, $type); $this->dispatcher->dispatch($event, KernelEvents::REQUEST); if ($event->hasResponse()) { return $this->filterResponse($event->getResponse(), $request, $type); } $request->headers->set('X-Php-Ob-Level', (string) ob_get_level()); $this->requestStack->push($request); $response = null; try { return $response = $this->handleRaw($request, $type); } catch (\Throwable $e) { if ($e instanceof \Error && !$this->handleAllThrowables) { throw $e; } } public function handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true): Response { if ($request->attributes->get('exception') !== null) { return parent::handle($request, $type, $catch); } if (!$request->attributes->has('sw-skip-transformer')) { try { $request = $this->requestTransformer->transform($request); } $request = $this->duplicateRequest($throwable, $event->getRequest()); try { $response = $event->getKernel()->handle($request, HttpKernelInterface::SUB_REQUEST, false); } catch (\Exception $e) { $f = FlattenException::createFromThrowable($e); $this->logException($e, \sprintf('Exception thrown when handling an exception (%s: %s at %s line %s)', $f->getClass(), $f->getMessage(), basename($e->getFile()), $e->getLine())); $this->priority ??= $dispatcher->getListenerPriority($eventName, $this->listener); $e = $this->stopwatch->start($this->name, 'event_listener'); try { ($this->optimizedListener ?? $this->listener)($event, $eventName, $dispatcher); } finally { if ($e->isStarted()) { $e->stop(); } } foreach ($listeners as $listener) { if ($stoppable && $event->isPropagationStopped()) { break; } $listener($event, $eventName, $this); } } /** * Sorts the internal list of listeners for the given event by priority. } else { $listeners = $this->getListeners($eventName); } if ($listeners) { $this->callListeners($listeners, $eventName, $event); } return $event; } * * @return TEvent */ public function dispatch(object $event, ?string $eventName = null): object { $event = $this->dispatcher->dispatch($event, $eventName); if (!$event instanceof FlowEventAware) { return $event; } ) { } public function dispatch(object $event, ?string $eventName = null): object { $event = $this->dispatcher->dispatch($event, $eventName); if (!HookableEventFactory::isHookable($event)) { return $event; } } $this->dispatch($nested, $name); } } return $this->dispatcher->dispatch($event, $eventName); } /** * @param callable $listener can not use native type declaration @see https://github.com/symfony/symfony/issues/42283 */ try { $this->beforeDispatch($eventName, $event); try { $e = $this->stopwatch->start($eventName, 'section'); try { $this->dispatcher->dispatch($event, $eventName); } finally { if ($e->isStarted()) { $e->stop(); } } * Handles a throwable by trying to convert it to a Response. */ private function handleThrowable(\Throwable $e, Request $request, int $type): Response { $event = new ExceptionEvent($this, $request, $type, $e, isKernelTerminating: $this->terminating); $this->dispatcher->dispatch($event, KernelEvents::EXCEPTION); // a listener might have replaced the exception $e = $event->getThrowable(); if (!$event->hasResponse()) { if ($pop = $request !== $this->requestStack->getMainRequest()) { $this->requestStack->push($request); } try { $response = $this->handleThrowable($exception, $request, self::MAIN_REQUEST); } finally { if ($pop) { $this->requestStack->pop(); } } if ($hasRun) { throw $e; } $hasRun = true; $kernel->terminateWithException($e, $request); }; } } elseif ($event instanceof ConsoleEvent && $app = $event->getCommand()->getApplication()) { $output = $event->getOutput(); if ($output instanceof ConsoleOutputInterface) { $this->exceptionHandler = null; } try { if (null !== $exceptionHandler) { $exceptionHandler($exception); return; } $handlerException ??= $exception; } catch (\Throwable $handlerException) { } try { if (null !== $fatalError) { self::$exitCode = 255; $handler->handleException($fatalError); } } catch (FatalError) { // Ignore this re-throw }|
Error
|
|---|
Error:
Nesting level too deep - recursive dependency?
at /www/htdocs/w0192583/shopware/vendor/symfony/event-dispatcher/EventDispatcher.php:145
at Symfony\Component\EventDispatcher\EventDispatcher->removeListener('kernel.request', array(object(CorsListener), 'onKernelRequest'))
(/www/htdocs/w0192583/shopware/vendor/shopware/core/Content/Flow/Dispatching/FlowDispatcher.php:86)
at Shopware\Core\Content\Flow\Dispatching\FlowDispatcher->removeListener('kernel.request', array(object(CorsListener), 'onKernelRequest'))
(/www/htdocs/w0192583/shopware/vendor/shopware/core/Framework/Webhook/WebhookDispatcher.php:56)
at Shopware\Core\Framework\Webhook\WebhookDispatcher->removeListener('kernel.request', array(object(CorsListener), 'onKernelRequest'))
(/www/htdocs/w0192583/shopware/vendor/shopware/core/Framework/Event/NestedEventDispatcher.php:51)
at Shopware\Core\Framework\Event\NestedEventDispatcher->removeListener('kernel.request', array(object(CorsListener), 'onKernelRequest'))
(/www/htdocs/w0192583/shopware/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:266)
at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->preProcess('kernel.request')
(/www/htdocs/w0192583/shopware/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:123)
at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch(object(RequestEvent), 'kernel.request')
(/www/htdocs/w0192583/shopware/vendor/symfony/http-kernel/HttpKernel.php:159)
at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 2)
(/www/htdocs/w0192583/shopware/vendor/symfony/http-kernel/HttpKernel.php:76)
at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 2, false)
(/www/htdocs/w0192583/shopware/vendor/shopware/core/Framework/Adapter/Kernel/HttpKernel.php:43)
at Shopware\Core\Framework\Adapter\Kernel\HttpKernel->handle(object(Request), 2, false)
(/www/htdocs/w0192583/shopware/vendor/symfony/http-kernel/EventListener/ErrorListener.php:99)
at Symfony\Component\HttpKernel\EventListener\ErrorListener->onKernelException(object(ExceptionEvent), 'kernel.exception', object(TraceableEventDispatcher))
(/www/htdocs/w0192583/shopware/vendor/symfony/event-dispatcher/Debug/WrappedListener.php:115)
at Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke(object(ExceptionEvent), 'kernel.exception', object(TraceableEventDispatcher))
(/www/htdocs/w0192583/shopware/vendor/symfony/event-dispatcher/EventDispatcher.php:206)
at Symfony\Component\EventDispatcher\EventDispatcher->callListeners(array(object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener)), 'kernel.exception', object(ExceptionEvent))
(/www/htdocs/w0192583/shopware/vendor/symfony/event-dispatcher/EventDispatcher.php:56)
at Symfony\Component\EventDispatcher\EventDispatcher->dispatch(object(ExceptionEvent), 'kernel.exception')
(/www/htdocs/w0192583/shopware/vendor/shopware/core/Content/Flow/Dispatching/FlowDispatcher.php:43)
at Shopware\Core\Content\Flow\Dispatching\FlowDispatcher->dispatch(object(ExceptionEvent), 'kernel.exception')
(/www/htdocs/w0192583/shopware/vendor/shopware/core/Framework/Webhook/WebhookDispatcher.php:28)
at Shopware\Core\Framework\Webhook\WebhookDispatcher->dispatch(object(ExceptionEvent), 'kernel.exception')
(/www/htdocs/w0192583/shopware/vendor/shopware/core/Framework/Event/NestedEventDispatcher.php:31)
at Shopware\Core\Framework\Event\NestedEventDispatcher->dispatch(object(ExceptionEvent), 'kernel.exception')
(/www/htdocs/w0192583/shopware/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:129)
at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch(object(ExceptionEvent), 'kernel.exception')
(/www/htdocs/w0192583/shopware/vendor/symfony/http-kernel/HttpKernel.php:241)
at Symfony\Component\HttpKernel\HttpKernel->handleThrowable(object(OutOfMemoryError), object(Request), 1)
(/www/htdocs/w0192583/shopware/vendor/symfony/http-kernel/HttpKernel.php:134)
at Symfony\Component\HttpKernel\HttpKernel->terminateWithException(object(OutOfMemoryError), object(Request))
(/www/htdocs/w0192583/shopware/vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php:77)
at Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::{closure:Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure():71}(object(OutOfMemoryError))
(/www/htdocs/w0192583/shopware/vendor/symfony/error-handler/ErrorHandler.php:538)
at Symfony\Component\ErrorHandler\ErrorHandler->handleException(object(OutOfMemoryError))
(/www/htdocs/w0192583/shopware/vendor/symfony/error-handler/ErrorHandler.php:634)
at Symfony\Component\ErrorHandler\ErrorHandler::handleFatalError()
|