MobileDetectBundle

Мобильные телефоны нашли применение по всему миру и, как следствие, в Интернете. Несмотря на рост популярности адаптивного веб-дизайна, владельцы веб-сайтов все чаще уделяют внимание разработке отдельных версий своих ресурсов для мобильных устройств.

В этой статье мы познакомимся с 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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

17 − шестнадцать =