dungeonworx/laravel-devicedetector

与 DeviceDetector 和 Laravel 的集成。

1.0.4 2018-12-23 21:46 UTC

This package is auto-updated.

Last update: 2024-08-29 04:31:46 UTC


README

Latest Stable Version Latest Unstable Version Total Downloads License Build Status

这个包是为了将 Piwik 的 DeviceDetector 包 以特定方式集成到我的 Laravel 应用程序中而创建的。在处理项目中的代码后,我发现这个包最好以包的形式公开,以便于他人使用。

这个项目的目标是提供更容易访问 DeviceDetector 库的方式,并将它封装在一个易于使用的 Laravel Facade 中,以便在代码的其他部分无缝访问。这个库还提供了一个中间件,可以在请求负载中提供一些额外的信息,以便根据当前连接的设备修改应用程序的部分功能。

使用方法

门面

如果您在请求中包含中间件,您只需要使用 Facade 的方法,这些方法已经 文档化

如果您没有在请求中使用中间件,或者您想检查不同的用户代理,您需要将可选的 user_agent 参数传递给特定方法。请注意,这将更改未来所有请求的解析结果。所以如果您想回到返回当前浏览器请求的值,您需要再次调用 DeviceDetector::get($request->userAgent()) 来重置回当前浏览会话。

use Dungeonworx\DeviceDetector\DeviceDetector;

// Dump the DeviceDetector attributes to the client.
dd(DeviceDetector::getAttributes());
[
    "browser" => true,
    "camera" => false,
    "car" => false,
    "console" => false,
    "desktop" => true,
    "feature_phone" => false,
    "feed_reader" => false,
    "library" => false,
    "media_player" => false,
    "mobile_app" => false,
    "mobile_device" => false,
    "phone_tablet" => false,
    "pim" => false,
    "portable_media_player" => false,
    "smart_display" => false,
    "smart_phone" => false,
    "tablet" => false,
    "touch_enabled" => false,
    "tv" => false,
]

中间件

要在中间件中使用此包,只需将 device_detector 中间件别名添加到您的项目中 Http/Kernel.php 文件中的 web 中间件。安装完成后,您可以在请求中访问四个内置的检测器。请求中的 is 键包含一个包含四个布尔值的数组;botdesktopmobiletouch。这些布尔值对于每个请求都是可用的,并且也缓存在您已分配的缓存存储库中。

// Get the booleans from DeviceDetector.
$request->get('is');
[
    'bot'     => false,
    'desktop' => true,
    'mobile'  => false,
    'touch'   => false,
]

文档

此包使用 phpDocumentor 进行文档化,其 API 文档可在此处找到 here