Symfony2: Alterar a visualização renderizada com um ouvinte

Eu gostaria de renderizar diferentes visões em contextos diferentes no meu projeto Symfony2. Estou usando várias rotas para as mesmas ações e gostaria de renderizar uma página diferente (exibição), mas com o mesmo controlador. Por exemplo eu tenho:

@Route("/articles/show", name="articles_show")
@Route("/mobile/articles/show", name="mobile_articles_show")

Ambas as rotas estão usandoa mesma ação : ArticlesController: showAction (), mas deve renderizar dois modelos diferentes (para usuários móveis e regulares).

show.html.twig
mobile.show.html.twig

Eu não quero usar uma instrução if ou qualquer outra coisa no meu controlador, então criei um ouvinte (semelhante a uma função preExecute)

Aqui é uma parte ou minhaconfig.yml que define minhaouvinte

services:
    controller.pre_execute_listener:
        class: MyProject\MyBundle\Listener\ControllerListener
        arguments: ["@security.context", "@doctrine", "@router", "@session"]
        tags:- { name: kernel.event_listener, event: kernel.controller, method: preExecute }

Eu estava pensando em fazer algo assim no ouvintefunção pré-execução:

if(substr($route,0,7) == 'mobile_'){
    $view = 'mobile.'.$view;
}

Infelizmente não consigo encontrar uma maneira de obter$ view ou atualize a visualização "on the fly", pouco antes de ser renderizada.

Espero que minha pergunta seja clara o suficiente, obrigado antecipadamente, qualquer idéia é bem vinda :)

J.

questionAnswers(4)

yourAnswerToTheQuestion