Мобильные телефоны нашли применение по всему миру и, как следствие, в Интернете. Несмотря на рост популярности адаптивного веб-дизайна, владельцы веб-сайтов все чаще уделяют внимание разработке отдельных версий своих ресурсов для мобильных устройств.
В этой статье мы познакомимся с MobileDetectBundle, который позволяет различать мобильные устройства и помогает перенаправить пользователей на соответствующую версию веб-сайта. После установки, простая конфигурация, указанная в примере ниже, позволяет реализовать часто применяемый сценарий, перенаправления мобильных пользователей на поддомен m. вашего сайта:
# app/config/config.yml mobile_detect: redirect: mobile: is_enabled: true host: http://m.example.com action: redirect detect_tablet_as_mobile: true
Читайте официальную документацию этого бандла, чтобы узнать, как настроить более сложные сценарии перенаправления.
Помимо перенаправлении пользователей, этот бандл также обеспечивает mobile_detector сервис, который позволяет обнаружить типы устройств, операционных систем и даже вендоров:
$device = $this->get('mobile_detect.mobile_detector'); // basic device detection $device->isMobile(); $device->isTablet(); // fine-grained device detection $device->isIphone(); $device->isIpad(); $device->isSamsung(); // device operating system $device->isIOS(); $device->isAndroidOS();
Все эти методы доступны в Twig шаблонах через соответсвующие функций, реализованые в бандле:
{% extends is_mobile() ? 'mobile/layout.html.twig': 'layout.html.twig' %} {% if is_android_os() %} Download our application from the store. {% endif %} {% if is_device('samsung') %} Thinking about buying an iPhone? Check out our deals! {% endif %}
Об авторе: Автором MobileDetectBundle является Николай Ивлев, разработчик Symfony из Москвы (Россия).
Источник: http://symfony.com/blog/meet-the-bundle-mobiledetectbundle