我需要在连接到网站时检查用户是否正在使用移动设备。
我需要进一步创建一个eventListener。
Symfony doc中的实际上您可以查看此$request->headers->get('User-Agent')
有一种简单的方法吗?
---编辑---
这是我到目前为止编写的代码。我可能想知道如何将它传递给控制器?
服务
template.loader:
class: ST\BackofficeBundle\EventListener\DeviceListener
tags:
- { name: kernel.event_listener, event: kernel.view, method: onKernelView }
听者
class DeviceListener
{
public function onKernelView(getResponseEvent $event)
{
$event->getRequest()->getSession()->set('mobile', true);
$response = new Response();
$response->setContent($event);
$event->setResponse($response);
}
}
我是在正确的轨道上吗?
答案 0 :(得分:1)
您可以查看https://github.com/kbond/ZenstruckMobileBundle代码
它在这里创建一个EventListener: https://github.com/kbond/ZenstruckMobileBundle/blob/master/EventListener/RequestListener.php
基于此,在此处覆盖树枝渲染: https://github.com/kbond/ZenstruckMobileBundle/blob/master/Twig/TwigEngine.php
这两件事都搞定了 https://github.com/kbond/ZenstruckMobileBundle/blob/master/Manager/MobileManager.php