Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Mobiledetectlib

Mobiledetectlib Laravel Package

mobiledetect/mobiledetectlib

Lightweight PHP library to detect mobile devices and tablets using User-Agent and HTTP headers. Provides simple checks like isMobile() and isTablet(), regularly updated with device rules, and easy to install via Composer for any PHP app.

View on GitHub
Deep Wiki
Context7

Mobile_Detect is a lightweight PHP class for detecting mobile devices (including tablets). It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.

Frequently asked questions about Mobiledetectlib
How do I install Mobile_Detect in a Laravel project?
Run `composer require mobiledetect/mobiledetectlib:^4.11` to install the latest stable version. The package has no Laravel dependencies and works as a standalone PHP class. For Laravel 10+, this version is fully compatible with PHP 8.2+.
Can I use this package in Laravel middleware to detect mobile devices?
Yes, create a middleware class (e.g., `DetectMobileDeviceMiddleware`) that instantiates `Mobile_Detect` and attaches the result to the request. This is efficient for request-scoped detection without caching overhead.
What Laravel versions does Mobile_Detect support?
The package works with all Laravel versions that support PHP 8.2+ (Laravel 10+). For older Laravel versions, use version 3.x (PHP 7.4+) or 2.x (PHP 5.6–7.0), but these are deprecated. Always check the [PHP version matrix](https://laravel.com/docs/10.x/releases) for alignment.
How accurate is Mobile_Detect compared to alternatives like BrowserStack?
Mobile_Detect uses regex patterns to parse User-Agent strings, which is highly accurate for most devices. For edge cases (e.g., spoofed headers), combine it with Client Hints (Sec-CH-UA-Mobile) in version 4.x+. BrowserStack offers broader device emulation but isn’t a direct alternative for runtime detection.
Should I cache detection results in Laravel, and how?
Yes, caching reduces redundant parsing. Use Laravel’s cache system (e.g., Redis or APCu) with PSR-16 support. Bind the `Mobile_Detect` instance to the container with a cache store, then set a short TTL (e.g., 5 minutes) to balance performance and freshness.
How do I extend Blade templates with mobile/tablet checks?
Create a Blade directive in a service provider (e.g., `BladeServiceProvider`). Use `Blade::if('mobile', fn() => request()->is_mobile)` and then call `@mobile` in your views. This keeps mobile-specific logic clean and reusable.
What happens if the User-Agent header is missing or spoofed?
By default, Mobile_Detect returns `false` for missing headers. For spoofed headers, enable Client Hints (4.x+) or implement a fallback (e.g., default to desktop). Test with tools like [WhatIsMyBrowser](https://whatismybrowser.com/) to validate edge cases.
Can I detect specific devices (e.g., iPhone 15) instead of just mobile/tablet categories?
Yes, use methods like `is('iPhone 15')` or `is('iPad Pro')`. However, fine-grained detection requires frequent regex updates. For stability, prioritize category-level checks (e.g., `isMobile()`) unless device-specific logic is critical.
How do I benchmark Mobile_Detect’s performance in Laravel?
Use PHPBench to measure detection latency. Aim for <1ms in middleware. Test with varied User-Agent strings (e.g., from [User-Agent strings](https://developers.whatismybrowser.com/useragents/explore/software_name/mobile/)) to simulate real-world traffic.
Are there alternatives to Mobile_Detect for Laravel, and when should I use them?
Alternatives include `jenssegers/agent` (more features but heavier) or `laravel-user-agent` (Laravel-specific). Use Mobile_Detect for lightweight needs (e.g., middleware) or when you need regex customization. Avoid alternatives if you require minimal dependencies or PSR-16 caching.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
calmfox/watch-sylius
damienfern/grpc-symfony-bundle
atoolo/index-bundle
atoolo/genai-bundle
coprotoai/laravel-ticket
davidjln/llm-carbon-bundle
cryonighter/valid-request-bundle
coolms/taxonomy-bundle
coolms/field-bundle
articulate-orm/symfony
aaix/laravel-tall-architect
ephoto/akeneo-connector
emmanuelballery/eb-plantumlbundle
emielburgman/symfony-visitor-beacon
emielburgman/symfony-visit-storage
emielburgman/symfony-security-headers
emielburgman/symfony-log-viewer
emarref/xdebug-bundle
emarref/pubnub-bundle
elriseio/finance-money-bundle