vxm/yii2-mobile-first

支持为 Yii2 应用程序实现移动优先原则。

1.0.0 2019-05-01 16:12 UTC

This package is auto-updated.

Last update: 2024-08-29 05:22:45 UTC


README

Latest Stable Version Total Downloads Build Status Code Coverage Scrutinizer Code Quality Yii2

关于它

一个扩展,提供了一种简单的方式来基于 Mobile Detect 包装器实现 Yii2 应用程序的移动优先原则。

要求

安装

使用 Composer 安装 Yii2 Mobile First

composer require vxm/yii2-mobile-first

用法

此扩展提供两个功能

  • 自适应过滤器 当检测到用户使用手机或平板电脑时,将用户重定向到手机站点。
  • 视图渲染行为 支持您根据设备类型(手机、平板电脑、iOS、Android 等)渲染视图文件。

自适应过滤器

要使用此过滤器,只需将其添加到应用程序配置文件中

[
    'id' => 'test',
    'basePath' => __DIR__,
    'vendorPath' => dirname(__DIR__) . '/vendor',
    'components' => [

    ],
    'as adaptiveFilter' => [
        'class' => 'vxm\mobileFirst\AdaptiveFilter',
        'redirectUrl' => ['https://m.yoursite.com', 'getParam1' => '1']
    ]
]

如果用户通过 URL yoursite.com/product?sort=price 访问您的站点,并且您想保留重定向到手机站点时 /product?sort=price 的 URL 路径: m.yoursite.com/product?sort=price,您只需进行以下配置:

[
    'id' => 'test',
    'basePath' => __DIR__,
    'vendorPath' => dirname(__DIR__) . '/vendor',
    'components' => [

    ],
    'as adaptiveFilter' => [
        'class' => 'vxm\mobileFirst\AdaptiveFilter',
        'redirectUrl' => ['https://m.yoursite.com', 'getParam1' => '1'],
        'keepUrlPath' => true
    ]
]

视图渲染行为

这是一种在不触摸原始视图渲染代码的情况下替换一组视图的方法。您可以使用它根据用户设备系统地更改应用程序的外观和感觉。例如,当在 SiteController 中调用 $this->render('about') 时,您将渲染视图文件 @app/views/site/about.php,如果用户使用手机设备,则将渲染视图文件 @app/views/site/mobile/about.php

要使用它,您需要在配置文件中将它附加到视图应用程序组件

[
    'id' => 'test',
    'basePath' => __DIR__,
    'vendorPath' => dirname(__DIR__) . '/vendor',
    'components' => [
        'view' => [
            'as mobileFirst' => [
                'class' => 'vxm\mobileFirst\ViewRenderBehavior',
                'dirMap' => [
                    'mobile' => 'mobile',
                    'tablet' => 'tablet'
                ]
            ]
        ]
    ]
]

dirMap 属性控制视图文件应如何根据用户设备进行替换。它接受一个键值对数组,其中键是设备类型,值是对应的视图子目录。替换基于用户设备:如果用户设备与 dirMap 数组中的任何键匹配,则将添加带有相应子目录值的视图路径。使用上面的配置示例,当用户使用 mobile 设备,因为它与键 mobile 匹配时,将添加 mobile 路径,例如 @app/views/site/mobile/about.php。当然,您可以更改值或添加更多情况。

[
    'id' => 'test',
    'basePath' => __DIR__,
    'vendorPath' => dirname(__DIR__) . '/vendor',
    'components' => [
        'view' => [
            'as mobileFirst' => [
                'class' => 'vxm\mobileFirst\ViewRenderBehavior',
                'dirMap' => [
                    'mobile' => 'mobile-tablet',
                    'tablet' => 'mobile-tablet',
                    'ios' => 'ios',
                    'android' => 'android'
                ]
            ]
        ]
    ]
]

如果用户使用手机或平板电脑设备,将添加 mobile-tablet 路径。