dungeonworx / laravel-devicedetector
与 DeviceDetector 和 Laravel 的集成。
Requires
- illuminate/contracts: ^5.7
- illuminate/http: ^5.7
- illuminate/support: ^5.7
- piwik/device-detector: ^3.11
Requires (Dev)
- laravel/framework: ^5.7
- phpunit/phpunit: ^7.5
This package is auto-updated.
Last update: 2024-08-29 04:31:46 UTC
README
这个包是为了将 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 键包含一个包含四个布尔值的数组;bot、desktop、mobile 和 touch。这些布尔值对于每个请求都是可用的,并且也缓存在您已分配的缓存存储库中。
// Get the booleans from DeviceDetector. $request->get('is');
[
'bot' => false,
'desktop' => true,
'mobile' => false,
'touch' => false,
]
文档
此包使用 phpDocumentor 进行文档化,其 API 文档可在此处找到 here。