vxm / yii2-mobile-first
支持为 Yii2 应用程序实现移动优先原则。
Requires
- php: ^7.1
- mobiledetect/mobiledetectlib: ^2.8
- yiisoft/yii2: ~2.0.13
This package is auto-updated.
Last update: 2024-08-29 05:22:45 UTC
README
关于它
一个扩展,提供了一种简单的方式来基于 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 路径。