Weave 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

User Agent Parser Bundle Laravel Package

shadesoft/user-agent-parser-bundle

A PHP bundle that parses user-agent strings to identify browser, operating system, device type, and bot traffic, exposing the results through a simple service you can inject wherever request analytics, logging, or content adaptation is needed.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Audience segmentation for analytics and reporting. Browser and OS are the minimum viable dimensions for slicing funnel, retention, and conversion data. This package can populate those two fields, but only those two — no device class, no bot filtering, no version-family rollups.
  • Feature gating and progressive enhancement. If the roadmap includes capabilities that vary by browser (legacy IE/Safari fallbacks, WebP/AVIF support, WebPush, CSS feature detection fallbacks), a UA signal is one input. This package gives you browser name and OS string only, so any capability decision still needs a real feature-detection layer or a maintained capability database.
  • Support and incident triage. "Which browser/OS was this user on when they hit the bug?" is a recurring support workflow question. A UA field on error reports and session records answers it cheaply.
  • QA test matrix prioritization. Traffic-weighted browser/OS distribution tells you which combinations to test before a release instead of testing everything.
  • Build vs. buy vs. borrow. This is a borrow option that has been withdrawn from the market. The real decision it triggers is: do we take on a maintained UA-parsing dependency, or write a thin in-house adapter over one?
  • Not supported by this package: bot/crawler detection, device type (mobile/tablet/desktop), client hints (UA-CH), GDPR-relevant fingerprinting posture, or any roadmap item requiring vendor/model-level device data. Do not scope those features against this library.

Framework caveat, flag before anything else: despite the "Laravel/PHP" framing, this is a Symfony bundle, not a Laravel package. It will not drop into a Laravel app without a Symfony kernel or manual service wiring. That alone disqualifies it from most Laravel roadmaps.

When to Consider This Package

Almost never for new work. Concretely:

  • Acceptable: you are maintaining a legacy Symfony 2.x/3.x application that already depends on it, and removing it is a larger change than leaving it. Even then, plan the exit.
  • Acceptable: a throwaway internal prototype or one-off script where accuracy and longevity are irrelevant.
  • Not acceptable: anything customer-facing, anything in a security or fraud path (it does no bot detection), anything with a compliance review (archived dependencies fail most supply-chain/SBOM gates), and anything on PHP 8+ — an abandoned bundle from this era will not have validated runtime support.

Look elsewhere if you need any of:

  • Active maintenance, security patching, or a responsive maintainer — this repo is archived, has 0 stars, 0 dependents, and is explicitly marked [ABANDONED] in its own description. That is the maintainer telling you the answer.
  • Device type, bot detection, or client-hint support.
  • A Laravel-native integration (service provider, facade, config publishing).
  • Up-to-date UA pattern data — UA strings drift constantly; frozen regex databases silently misclassify new browsers as "unknown."

Better-fit options to evaluate instead: matomo/device-detector (broadest device/bot coverage), ua-parser/uap-php (actively maintained, mirrors the widely used ua-parser dataset), browscap/browscap-php (capability-level detail), or jensselers/agent for a Laravel-friendly wrapper. Pick one, wrap it behind your own UserAgentResolver interface, and the choice stops being architectural.

How to Pitch It (Stakeholders)

To executives: We evaluated this package and recommend not adopting it. It is formally abandoned and archived by its author, has no users or downstream dependents, and is a Symfony component rather than a Laravel one — meaning integration cost is higher than the feature is worth. Browser and OS detection is a commodity capability available from at least three actively maintained libraries at zero licence cost. Adopting an archived dependency would add supply-chain risk and a guaranteed future migration for no offsetting benefit.

To engineering: The capability we actually want — reliable browser/OS/device classification — should sit behind a single internal interface (UserAgentResolver) with one maintained implementation behind it. That contains the blast radius of any future swap to a one-file change, and it means this evaluation is a decision we make once rather than per feature. Do not take a direct dependency on this bundle in new code; if it exists in a legacy service, log it as tech debt with a target removal date rather than scheduling immediate removal.

Bottom line: low stakes, clear answer. Skip it, standardize on a maintained parser behind an internal abstraction, and reallocate the integration effort to the feature that needed the data in the first place.

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.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console