Symfony 检查用户是否正在使用移动设备

Symfony 检查用户是否正在使用移动设备,symfony,user-agent,Symfony,User Agent,我需要检查用户在连接到网站时是否正在使用移动设备 我需要再做一个eventListener 在这篇文章中,你可以查看$request->headers->get'User-Agent' 有没有一个简单的方法可以做到这一点 --编辑-- 这是我到目前为止写的代码。我不知道怎么把它传给控制器 服务 听众 我走对了吗?你可以看看代码 它在此处创建一个EventListener: 基于此,在此处覆盖细枝渲染: 这两件事都是通过网络联系起来的 我认为你的问题太宽泛了,请首先阅读有关服务如何工作的内容。

我需要检查用户在连接到网站时是否正在使用移动设备

我需要再做一个eventListener

在这篇文章中,你可以查看$request->headers->get'User-Agent'

有没有一个简单的方法可以做到这一点

--编辑--

这是我到目前为止写的代码。我不知道怎么把它传给控制器

服务

听众

我走对了吗?

你可以看看代码

它在此处创建一个EventListener:

基于此,在此处覆盖细枝渲染:

这两件事都是通过网络联系起来的

我认为你的问题太宽泛了,请首先阅读有关服务如何工作的内容。moby.loader是您发布的答案中定义的服务,因此您必须定义该服务,它是您的loader类的实例。好的,谢谢,我将尝试缩小itI范围。我需要检查用户是否正在使用移动设备-为什么?移动设备几乎从来都不是有用的信息。你真正关心的是什么?显示器尺寸?如果屏幕是触摸屏?如果他们在慢速网络连接上?在按流量计费的网络连接上?在不可靠的连接上?如果要下载.exe文件,是否能够运行该文件?还有什么吗?谢谢你的帮助,我明天会尝试应用它:我了解一点它是如何工作的,但是细枝渲染它实际上是做什么的?因为一开始我真的想知道如何知道用户是否在使用手机。因此,我创建了一个事件侦听器和移动管理器。我不需要$request->headers->get'User-Agent'这一行?如果mobileManager注入服务说它是移动的,那么细枝渲染会选择不同的模板。如何判断它是否是移动的,这取决于您,您还可以在事件侦听器上使用用户代理。在这种情况下,他们使用手机管理员来解决这个问题。谢谢你的解释。我更新了我的帖子。我错过了服务中的一个论点顺便问一下,我需要服务吗?我现在怎么知道用户是否在使用手机?这是我第一次做这种功能,我承认我有点迷茫,因为我正在寻找一种简单的方法来检测用户是否在移动设备上。恐怕你有太多的问题,你应该单独问,但我会尝试在这里回答。如果需要,可以通过检查用户代理来检查它是否是移动设备。其思想是,在事件侦听器中,您检查并传递它。您可以通过多种方式传递它,例如,一种可能是更改请求对象,另一种可能是在服务中设置一些参数,您可以稍后在其中进行检查,例如此MobileManager。细枝渲染只是记录所有内容,当您渲染时,它会在MobileManager上进行检查,以便所有内容对您来说都是透明的。
  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);
    }
}