定制 balambasik/deviceinfo 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

balambasik/deviceinfo

Composer 安装命令:

composer require balambasik/deviceinfo

包简介

A lightweight library for defining basic device data.Detection will be performed based on UserAgent and IP address.Allows you to determine: device type, operating system, browser, country.

README 文档

README

A lightweight library for defining basic device data. Detection will be performed based on UserAgent and IP address. Allows you to determine: device type, operating system, browser, country.

Install

composer require balambasik/deviceinfo

Usage

Getting information about the current device

<?php

include "vendor/autoload.php";

use Balambasik\DeviceInfo\DeviceInfo;

$devInfo = new DeviceInfo();

print_r($devInfo->getInfo());

Result

Array
(
    [device_type] => desktop
    [os] => windows_10
    [browser] => chrome_desktop
    [geo_code] => US
    [ip] => 8.8.8.8
    [long_ip] => 134744072
    [geo_details] => Array
        (
            [name] => United States of America
            [alfa2] => US
            [alfa3] => USA
            [numeric] => 840
        )
)

Assets

You can also get icons. (National flag, device type, OS, browser)

<?php

include "vendor/autoload.php";

use Balambasik\DeviceInfo\DeviceInfo;

$devInfo = new DeviceInfo();

print_r($devInfo->getInfo(DeviceInfo::ASSETS_BASE64)); // icons base64
// print_r($devInfo->getInfo(DeviceInfo::ASSETS_URL)); // icons URLs
// print_r($devInfo->getInfo(DeviceInfo::ASSETS_ALL)); URLs and base64

Result

Array
(
    [device_type] => desktop
    [os] => windows_10
    [browser] => chrome_desktop
    [geo_code] => US
    [ip] => 8.8.8.8
    [long_ip] => 134744072
    [geo_details] => Array
        (
            [name] => United States of America
            [alfa2] => US
            [alfa3] => USA
            [numeric] => 840
        )
    [assets] => Array
        (
            [device_type] => QzpcT1NQYW5lbFxkb21haW5zXHJlcXVlc3RpbmZvXHNyY1xhc3NldHNcdHlwZXNcZGVza3RvcC5wbmc=
            [os] => QzpcT1NQYW5lbFxkb21haW5zXHJlcXVlc3RpbmZvXHNyY1xhc3NldHNcb3Ncd2luZG93c18xMC5wbmc=
            [browser] => QzpcT1NQYW5lbFxkb21haW5zXHJlcXVlc3RpbmZvXHNyY1xhc3NldHNcYnJvd3NlcnNcY2hyb21lX2Rlc2t0b3AucG5n
            [geo] => QzpcT1NQYW5lbFxkb21haW5zXHJlcXVlc3RpbmZvXHNyY1xhc3NldHNcZmxhZ3NcVVMucG5n
        )
)

Custom IP or UserAgent

Use constructor

use Balambasik\DeviceInfo\DeviceInfo;

$devInfo = new DeviceInfo("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0", "4.4.4.4");

print_r($devInfo->getInfo(DeviceInfo::ASSETS_BASE64));

Use setters

<?php

include "vendor/autoload.php";

use Balambasik\DeviceInfo\DeviceInfo;

$devInfo = new DeviceInfo();

$info = $devInfo
    ->setIP("4.4.4.4")
    ->setUserAgent("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0")
    ->getInfo(DeviceInfo::ASSETS_BASE64);

print_r($info);

Result

Array
(
    [device_type] => desktop
    [os] => windows_7
    [browser] => firefox_desktop
    [geo_code] => US
    [ip] => 4.4.4.4
    [long_ip] => 67372036
    [geo_details] => Array
        (
            [name] => United States of America
            [alfa2] => US
            [alfa3] => USA
            [numeric] => 840
        )

    [assets] => Array
        (
            [device_type] => QzpcT1NQYW5lbFxkb21haW5zXHJlcXVlc3RpbmZvXHNyY1xhc3NldHNcdHlwZXNcZGVza3RvcC5wbmc=
            [os] => QzpcT1NQYW5lbFxkb21haW5zXHJlcXVlc3RpbmZvXHNyY1xhc3NldHNcb3Ncd2luZG93c183LnBuZw==
            [browser] => QzpcT1NQYW5lbFxkb21haW5zXHJlcXVlc3RpbmZvXHNyY1xhc3NldHNcYnJvd3NlcnNcZmlyZWZveF9kZXNrdG9wLnBuZw==
            [geo] => QzpcT1NQYW5lbFxkb21haW5zXHJlcXVlc3RpbmZvXHNyY1xhc3NldHNcZmxhZ3NcVVMucG5n
        )

)

Values list

<?php

include "vendor/autoload.php";

use Balambasik\DeviceInfo\DeviceInfo;

print_r(DeviceInfo::list());

Result

Array
(
    [device_types] => Array
        (
            [0] => crawler
            [1] => mobile
            [2] => tablet
            [3] => desktop
        )
    [os] => Array
        (
            [0] => ios
            [1] => android
            [2] => symbian
            [3] => black_berry
            [4] => windows_mobile
            [5] => windows_phone
            [6] => windows_10
            [7] => windows_8_1
            [8] => windows_8
            [9] => windows_7
            [10] => windows_server
            [11] => windows_xp
            [12] => windows_2000
            [13] => windows_me
            [14] => mac_os
            [15] => ubuntu
            [16] => linux
            [17] => windows_vista
            [18] => unknown_os
        )
    [browsers] => Array
        (
            [0] => chrome_mobile
            [1] => opera_mobile
            [2] => dolphin_mobile
            [3] => firefox_mobile
            [4] => uc_browser_mobile
            [5] => puffin_mobile
            [6] => safari_mobile
            [7] => edge_mobile
            [8] => ie_mobile
            [9] => android_mobile
            [10] => firefox_desktop
            [11] => opera_desktop
            [12] => edge_desktop
            [13] => chrome_desktop
            [14] => maxthon_desktop
            [15] => safari_desktop
            [16] => ie_desktop
            [17] => unknown_browser
        )
    [countries_codes] => Array
        (
            [0] => XX
            ...
            [249] => ...
        )
    [countries_names] => Array
        (
            [0] => Unknown country
            ...
            [249] => ...
        )
)

Dependencies

https://github.com/JayBizzle/Crawler-Detect

https://github.com/serbanghita/Mobile-Detect

https://sypexgeo.net/en/

balambasik/deviceinfo 适用场景与选型建议

balambasik/deviceinfo 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 16 次下载、GitHub Stars 达 0, 最近一次更新时间为 2021 年 03 月 09 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「device type」 「device os」 「device browser」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 balambasik/deviceinfo 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 balambasik/deviceinfo 我们能提供哪些服务?
定制开发 / 二次开发

基于 balambasik/deviceinfo 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 16
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 11
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-03-09