/** * @param string $route A route name for which the switch has to be made * @param array $parameters * @param string $template * * @return mixed */ public function renderSwitcher($route = null, $parameters = array(), $template = null) { $showCurrentLocale = $this->container->getParameter('lunetics_locale.switcher.show_current_locale'); $useController = $this->container->getParameter('lunetics_locale.switcher.use_controller'); $allowedLocales = $this->container->get('lunetics_locale.allowed_locales_provider')->getAllowedLocales(); // Use the request stack if it exists (Symfony 2.4+); otherwise use the request "service" // @see http://symfony.com/blog/new-in-symfony-2-4-the-request-stack $request = $this->container->has('request_stack') ? $this->container->get('request_stack')->getMasterRequest() : $this->container->get('request'); $router = $this->container->get('router'); $infosBuilder = new TargetInformationBuilder($request, $router, $allowedLocales, $showCurrentLocale, $useController); $infos = $infosBuilder->getTargetInformations($route, $parameters); return $this->container->get('lunetics_locale.switcher_helper')->renderSwitch($infos, $template); }
public function testGenerateNotCalledIfNoRoute() { $request = $this->getRequestWithBrowserPreferences(); $request->attributes->set('_route', null); $router = $this->getRouter(); $targetInformationBuilder = new TargetInformationBuilder($request, $router, array('de', 'en', 'fr'), true, false); $router->expects($this->never())->method('generate'); $targetInformationBuilder->getTargetInformations(); }