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

Fos User Bundle Polyfill Laravel Package

nucleos/fos-user-bundle-polyfill

A compatibility polyfill that supplies the legacy FOSUserBundle class names and aliases still referenced by third-party packages, so projects can migrate to NucleosUserBundle without breaking dependencies. Drop it in to bridge the gap until all packages support the newer bundle.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit: Low-to-moderate, and only as a temporary compatibility shim. FOSUserBundle is a Symfony-era user-management bundle; Laravel applications use Laravel’s own auth/security contracts and Eloquent/Doctrine-agnostic models. This package supplies FOSUserBundle model interfaces for legacy code, not Laravel auth services, routing, persistence, password hashing, or user-provider behavior. It fits when a Laravel/PHP codebase must satisfy legacy type hints against FOSUserBundle model interfaces during a migration, not as a strategic user-management dependency.

Integration feasibility: Feasible via Composer if the consuming code already expects FOSUserBundle model interfaces and the package’s PHP/Composer constraints match the target runtime. There is no Laravel service provider or runtime integration to configure. Feasibility is constrained by the package being archived, last released in 2020-01-11, having 2 stars and 0 dependents, and providing no ecosystem validation. Treat installation as a controlled compatibility experiment, not a standard package adoption.

Technical risk: High governance and lifecycle risk. Archived status means no maintainer-backed fixes, no security-response commitment, and likely incompatibility with modern PHP/Symfony/Laravel versions unless validated or forked. The interface-only scope can create false confidence: satisfying a type hint does not deliver FOSUserBundle behavior. Risks include interface drift from the legacy FOSUserBundle version, autoload/namespace collisions, PHP version incompatibility, and hidden coupling to legacy model assumptions.

Key questions:

  • Which exact FOSUserBundle interfaces/classes are required by the legacy code, and are they all covered by this polyfill?
  • Is the goal to run legacy code inside Laravel, migrate data/models out of FOSUserBundle, or merely satisfy static/type contracts?
  • What PHP, Laravel, Symfony, and Composer versions must be supported?
  • Can the team replace these contracts with app-owned interfaces or adapters instead?
  • Is a vendored fork acceptable if a compatibility or security fix is needed?
  • What test coverage proves the polyfill matches the legacy FOSUserBundle contract in use?

Integration Approach

Stack fit: Poor as a native Laravel dependency; acceptable only as a narrow bridge for legacy PHP/Symfony/FOSUserBundle compatibility. Do not introduce it into greenfield Laravel auth, user, or identity domains. Prefer Laravel-native contracts, custom interfaces, or an anti-corruption layer around legacy user models.

Migration path: Inventory all references to FOSUserBundle model interfaces, type hints, and serialized assumptions. Introduce the polyfill behind an isolated compatibility layer, not directly across domain code. Map legacy user/group interfaces to application-owned contracts and adapters. Once the legacy dependency is removed, delete the polyfill and its adapters. If the polyfill is needed long-term, vendor/fork it with explicit ownership.

Compatibility: Validate Composer constraints against the target PHP runtime and framework versions before adoption. Confirm namespace/autoload behavior with the existing legacy packages. Run static analysis and contract tests against the exact FOSUserBundle version being emulated. Check whether any installed package already provides overlapping FOSUserBundle classes or interfaces.

Sequencing:

  1. Discovery: list required interfaces, legacy versions, and current type-hint usage.
  2. Spike: install in an isolated branch and run static analysis plus targeted contract tests.
  3. Containment: wrap usage in adapters and prohibit direct domain-layer references.
  4. Migration: replace legacy FOSUserBundle contracts with app-owned interfaces and data mappings.
  5. Exit: remove the polyfill, or vendor/fork it with an owner and patch policy if unavoidable.

Operational Impact

Maintenance: Effectively self-supported. The package is archived and has no active release cadence, so the adopting team owns compatibility, patching, and security review. MIT licensing permits a fork, but forking adds long-term maintenance burden.

Support: No vendor or maintainer support path. Internal support must rely on tests, static analysis, and documentation of exactly which legacy contracts are emulated. Operational runbooks should identify the polyfill as a temporary migration dependency.

Scaling: Runtime impact is likely negligible because the package is an interface polyfill, not a service or persistence layer. Organizational scaling is weaker: legacy FOSUserBundle knowledge becomes a bottleneck, and the polyfill can spread if teams treat it as a permanent compatibility layer.

Failure modes: Interface/class mismatch after dependency updates, PHP/Composer incompatibility, autoload collisions, type errors in legacy code, false assumptions that auth behavior is included, and silent divergence from the legacy FOSUserBundle contract. A failure may surface as a fatal type error or as incorrect user-model behavior if teams assume the polyfill provides implementation.

Ramp-up: Low code-level ramp-up for a PHP developer who understands Composer autoloading and interfaces. Moderate ramp-up for the legacy FOSUserBundle domain model, migration boundaries, and user-security assumptions. TPM should budget discovery and contract-testing effort, not just installation effort.

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.
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums