假设我们在
下有主页http://foo.bar/
和处理它的控制器:
class HomepageController extends FooController{
public function homepageAction()
{
(some stuff)
}
}
主页只是桌面版,然后是RWD版。下一步是为桌面和移动设备编写单独的视图,并将它们连接起来(简化)。
class HomepageController extends FooController{
public function homepageAction()
{
(some stuff)
if(true === $this->detector->isMobile())
{
return new Response($this->renderView('homepage.mobile.html.twig' [
'some' => $vars',
]
));
}
return new Response($this->renderView('homepage.mobile.html.twig' [
'some' => $vars',
'only' => $for,
'desktop' => $version,
]
));
}
}
现在是下一步 - 让主页的移动版在不同的控制器上运行。这是因为桌面版本获得了移动中不需要的大量数据,导致当前流量未得到优化。
所以,总结一下,条件:
到目前为止,我发现的唯一解决方案是: 1.总是打桌面控制器, 2.首先要做的是检查请求是否来自移动设备, 3.如果是,则在内部转发给移动主页控制器。
听起来不错,但我相信它可以做得更好!
我还有另外两个关于如何做到这一点的理论,但我现在不想提出它们,所以没有人受到影响。