public function getRouteByName($name)
{
$request = $this->container->get('request_stack')->getCurrentRequest();
if($request) {
$result = $this->matchWebsiteWithDatabaseAndConnection($request);
if($result !== false) {
$all = $this->getWebsiteRoutes((bool)$result[0])->all();
if(isset($all[$name])) {
if($result[0]) {
$all[$name]->setDefault('__website', $result[0]);
*
* @throws RouteNotFoundException if there is no route found for the provided name
*/
protected function getRouteByName($name, array $parameters)
{
$route = $this->provider->getRouteByName($name);
if (null === $route) {
throw new RouteNotFoundException('No route found for name: '.$name);
}
return $this->getBestLocaleRoute($route, $parameters);
$route = $this->getBestLocaleRoute($parameters[RouteObjectInterface::ROUTE_OBJECT], $parameters);
} else {
$route = $this->getRouteByContent($name, $parameters);
}
} elseif (is_string($name) && $name) {
$route = $this->getRouteByName($name, $parameters);
} else {
$route = $this->getRouteByContent($name, $parameters);
}
if (!$route instanceof SymfonyRoute) {
if ($router instanceof VersatileGeneratorInterface && !$router->supports($name)) {
continue;
}
try {
return $router->generate($name, $parameters, $absolute);
} catch (RouteNotFoundException $e) {
$hint = $this->getErrorMessage($name, $router, $parameters);
$debug[] = $hint;
if ($this->logger) {
$this->logger->debug('Router '.get_class($router)." was unable to generate route. Reason: '$hint': ".$e->getMessage());
return new Response($this->container->get('twig')->render('website/lock.html.twig', [
'response_status' => 'lock',
'page_id' => $this->page ? $this->page->getId() : null,
'slug' => $this->slug,
'css_url' => $this->generateCssUrl('lock', $isPageLockScreen ? 'page' : 'common'),
'favicon_url' => $this->generateFaviconUrl(),
'lock_meta' => $meta ?: [],
'page_meta' => $pageMeta ?: ($meta ?: []),
'is_website_down' => $isPreview ? false : empty($this->website),
'is_preview_mode' => $isPreview,
if(isset($data['renderer'])) $response = $data['renderer']->renderFeedRss();
break;
case 'website.down':
if($container) {
$renderer = new WebsiteRenderer($container, null);
$response = $renderer->renderLockScreen(503);
}
break;
case 'lock.screen':
case 'page.lock.screen':
if(isset($data['renderer'])) {
* @throws \Exception
*/
private function handleThrowable(\Throwable $e, Request $request, int $type): Response
{
$event = new ExceptionEvent($this, $request, $type, $e);
$this->dispatcher->dispatch($event, KernelEvents::EXCEPTION);
// a listener might have replaced the exception
$e = $event->getThrowable();
if (!$event->hasResponse()) {
RouteProviderException |
---|
App\Service\Exception\RouteProviderException: website.down at /opt/wsw/wsw-web/src/Service/RouteProvider.php:212 at App\Service\RouteProvider->matchWebsiteWithDatabaseAndConnection() (/opt/wsw/wsw-web/src/Service/RouteProvider.php:66) at App\Service\RouteProvider->getRouteByName() (/opt/wsw/wsw-web/vendor/symfony-cmf/routing/src/ContentAwareGenerator.php:117) at Symfony\Cmf\Component\Routing\ContentAwareGenerator->getRouteByName() (/opt/wsw/wsw-web/vendor/symfony-cmf/routing/src/ContentAwareGenerator.php:89) at Symfony\Cmf\Component\Routing\ContentAwareGenerator->generate() (/opt/wsw/wsw-web/vendor/symfony-cmf/routing/src/DynamicRouter.php:180) at Symfony\Cmf\Component\Routing\DynamicRouter->generate() (/opt/wsw/wsw-web/vendor/symfony-cmf/routing/src/ChainRouter.php:248) at Symfony\Cmf\Component\Routing\ChainRouter->generate() (/opt/wsw/wsw-web/src/Service/WebsiteRenderer.php:786) at App\Service\WebsiteRenderer->generateCssUrl() (/opt/wsw/wsw-web/src/Service/WebsiteRenderer.php:4474) at App\Service\WebsiteRenderer->renderLockScreen() (/opt/wsw/wsw-web/src/Service/Exception/RouteProviderException.php:37) at App\Service\Exception\RouteProviderException->getResponse() (/opt/wsw/wsw-web/src/Service/ExceptionListener.php:30) at App\Service\ExceptionListener->onKernelException() (/opt/wsw/wsw-web/vendor/symfony/event-dispatcher/Debug/WrappedListener.php:117) at Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke() (/opt/wsw/wsw-web/vendor/symfony/event-dispatcher/EventDispatcher.php:230) at Symfony\Component\EventDispatcher\EventDispatcher->callListeners() (/opt/wsw/wsw-web/vendor/symfony/event-dispatcher/EventDispatcher.php:59) at Symfony\Component\EventDispatcher\EventDispatcher->dispatch() (/opt/wsw/wsw-web/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:151) at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch() (/opt/wsw/wsw-web/vendor/symfony/http-kernel/HttpKernel.php:218) at Symfony\Component\HttpKernel\HttpKernel->handleThrowable() (/opt/wsw/wsw-web/vendor/symfony/http-kernel/HttpKernel.php:111) at Symfony\Component\HttpKernel\HttpKernel->terminateWithException() (/opt/wsw/wsw-web/vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php:127) at Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::Symfony\Component\HttpKernel\EventListener\{closure}() (/opt/wsw/wsw-web/vendor/symfony/error-handler/ErrorHandler.php:594) at Symfony\Component\ErrorHandler\ErrorHandler->handleException() |