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

Hashids Bundle Laravel Package

philetaylor/hashids-bundle

Symfony bundle integrating Hashids to obfuscate numeric IDs as short, unique, non-sequential strings. Provides services and Twig filters for encoding and decoding IDs with configurable salt, length, and alphabet.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. Low to none for a Laravel codebase. The package is named and structured as a bundle ("hashidsBundle," "Bundle for use hashids lib"), which is Symfony's packaging convention — a Bundle class plus a DependencyInjection extension that registers services into the Symfony container. Laravel does not consume Symfony bundles; it uses Illuminate service providers. There is no evidence in the metadata (1 star, 0 dependents, no Laravel-tagged release history) that this package targets Laravel at all. Treat the "Laravel/PHP package" framing as likely a catalog misclassification and verify before any design work.

Integration feasibility. Very low, and unnecessary. The only functional value here is Hashids encoding/decoding — obfuscating sequential integer IDs into short, non-guessable strings for URLs and public identifiers. That capability is fully provided by the underlying hashids/hashids library, which is framework-agnostic plain PHP, actively maintained, and widely adopted. Adopting this bundle would mean either (a) dragging Symfony DI semantics into Laravel, or (b) writing our own adapter around a wrapper that adds nothing. Both are worse than binding the underlying library directly.

Technical risk. High, concentrated in governance rather than runtime:

  • Bus factor of one. Single maintainer, single star, zero dependents — no community to surface regressions or absorb maintenance.
  • Staleness. Last release 2022-09-21; likely pinned to older PHP and Symfony component ranges, which is a direct collision risk with modern Laravel (Laravel 10/11/12 pull Symfony 6/7 components).
  • No security signal. Hashids is security-adjacent (salt handling, ID enumeration); an unmaintained wrapper around it is a poor place to sit.
  • The scoring heuristic (0.005) is itself a signal — it is flagging near-zero ecosystem confidence, and it aligns with the raw adoption numbers.

Key questions.

  1. Is this a Symfony bundle only, or does it ship a Laravel service provider / facade? (Composer type and extra.laravel will answer this in seconds.)
  2. What does it add over calling hashids/hashids directly? If the answer is "container wiring," that is ~30 lines we can own.
  3. What are its PHP and Symfony version constraints, and does it resolve against our current Laravel lockfile?
  4. License, security contact, and issue-response history?
  5. Is there a maintained Laravel-native alternative already in our dependency set?

Integration Approach

Stack fit. Symfony-first, Laravel-incidental at best. The correct integration point for Laravel is the underlying hashids/hashids library, bound as a singleton in an application service provider, with config surfaced through config/hashids.php and injected via constructor. If a Laravel-native wrapper is preferred, use a purpose-built one rather than this bundle.

Migration path. Recommended: do not adopt. Add hashids/hashids directly and own the ~30-line binding. This gives us the identical feature surface with a maintained dependency and no Symfony coupling. If the team has already prototyped against this bundle, the migration out is trivial because the public API is just encode/decode/encodeHex/decodeHex — swap the container binding and delete the bundle.

Compatibility. The 2022 release date is the gating issue. Confirm the composer constraints resolve against our Laravel and Symfony component versions before any proof-of-concept; a hard conflict here ends the evaluation immediately. Also verify PHP 8.2/8.3 support, since a 2022 bundle may predate it.

Sequencing. If leadership wants the option validated rather than dismissed:

  1. Inspect composer.json (type, constraints, autoload, license) — 15 minutes, decisive.
  2. Attempt composer require in a throwaway branch against the real lockfile; capture resolution conflicts.
  3. If it resolves, smoke-test container resolution inside a Laravel app.
  4. Default outcome: fall back to the underlying library. Treat any adoption of this bundle as requiring an explicit exception, not a default.

Operational Impact

Maintenance. Effectively we would own it. With one maintainer, one star, and zero dependents, upstream fixes for PHP/Symfony drift are unlikely to arrive on our timeline. Any adapter glue we write becomes permanent internal code with no upstream to hand it back to.

Support. GitHub issues only, sparse by construction. No vendor, no SLA, no security disclosure process we can rely on. For a component touching public-facing identifiers, that is a meaningful gap.

Scaling. Runtime scaling is a non-issue — Hashids is cheap string arithmetic, O(1)-ish per call, no external service, no state. The operational scaling risk is entirely organizational: the cost of carrying an unmaintained dependency grows with team turnover and framework upgrades, not with traffic.

Failure modes.

  • Composer resolution failure on Laravel/Symfony upgrades, blocking routine maintenance.
  • Container binding absent or misconfigured, producing null injection at runtime rather than a clean boot failure.
  • Salt misconfiguration or rotation silently breaking previously issued public IDs and every stored link — the highest-impact failure and the one most likely to reach production.
  • Salt leakage enabling ID enumeration, weakening the only security property Hashids offers.
  • Abandonment: the repository going quiet and no fork materializing, leaving us to vendor or rewrite under pressure.

Ramp-up. Near zero on the technical side — Hashids' API is four methods and a salt/min-length config. The learning cost is not engineering time; it is the governance overhead of justifying, tracking, and eventually replacing a near-zero-adoption dependency. That overhead is disproportionate to the value delivered, which is the core of the recommendation: do not adopt; depend on hashids/hashids directly or a maintained Laravel-native wrapper.

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.
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource