Yii2集成Mobile Detect类库 [ 2.0 版本 ]
把Mobile Detect类库作为一个组件引入到Yii2里面去。
首先需要先用Composer安装Mobile Detect:composer require mobiledetect/mobiledetectlib
。
然后新建一个DeviceDetect类:
<?php
namespace common\service;
use Yii;
use yii\base\Object;
use Detection\MobileDetect;
/**
* 移动设备检测功能
* @link http://mobiledetect.net/
* @link https://www.360us.net/
*
* @example
* //注册一个检测移动设备组件
* Yii::$app->set('deviceDetect', [
* 'class' => 'common\service\DeviceDetect',
* ]);
* //使用
* Yii::$app->deviceDetect->isMobile();
*
* Class Mobile
* @package common\service
*/
class DeviceDetect extends Object
{
//MobileDetect对象
protected $detector;
//初始化
public function init()
{
parent::init();
$this->detector = new MobileDetect();
}
public function __call($name, $params)
{
return call_user_func_array(
array($this->detector, $name),
$params
);
}
}
这里我们继承Object而不是继承Component,这是因为Component比Object重量级,如果不需要用到Component提供的功能的话就可以不用继承Object。
然后用法就是,可以在配置文件里面components选择里面配置之后使用:
'deviceDetect' => [
'class' => 'common\service\DeviceDetect',
],
这样配置的话,每次请求都会加载。
也可以在需要用的时候在注册:
Yii::$app->set('deviceDetect', [
'class' => 'common\service\DeviceDetect',
]);
使用:
Yii::$app->deviceDetect->isMobile();
所有Mobile Detect库所提供的方法都可以通过Yii::$app->deviceDetect来访问。
dyllen
注册时间:2014-09-09
最后登录:2020-10-16
在线时长:48小时47分
最后登录:2020-10-16
在线时长:48小时47分
- 粉丝8
- 金钱400
- 威望80
- 积分1680
共 4 条评论
改过了啊!
学习了 我觉得
http://www.jb51.net/article/48991.htm
这篇文章可以作为补充还行,呵呵
看来又是大神的通病 不给例子 小菜有些伤不起