nmalo/fos-user-bundle
A PHP user bundle inspired by FOSUserBundle, providing user account entities, registration, authentication, and profile management for Symfony-style applications. Helps add configurable user handling and common security workflows to your project.
Headline finding: this is not a Laravel package, and it is not a viable Laravel dependency. nmalo/fos-user-bundle is a fork of FOSUserBundle, a Symfony bundle. The evaluation below treats it as a PHP package, but the framework mismatch is a disqualifying constraint for any Laravel codebase and the primary finding for the assessment.
Architecture fit
config/bundles.php, exposes a fos_user: configuration tree through a Symfony DI extension, and depends on Symfony's HttpKernel, Security, EventDispatcher, Form, Validator, Templating/Twig, and Doctrine\ORM (users are mapped through the FOS\UserBundle\Model\User mapped superclass).doctrine/orm, doctrine/dbal, doctrine/collections) to reimplement functionality Laravel already ships (laravel/fortify, Breeze, Jetstream).symfonycasts/reset-password-bundle. Adopting a fork of a deprecated bundle is a deliberate move onto an end-of-life path.Integration feasibility: low (Laravel: not feasible without a rewrite)
Technical risk (high, concentrated in the security domain)
Key questions to resolve before any further spend
composer.json, and do they resolve against a currently supported runtime?Stack fit
laravel/fortify (headless auth: registration, reset, 2FA) with Breeze or Jetstream for scaffolding, laravel/socialite if social login is required, and Laravel's built-in Hash, RateLimiter, and signed-URL reset flow. This covers the FOSUserBundle feature set (registration, confirmation, login, password reset, profile editing, groups) with first-party, actively patched code.symfony/security-bundle with a MakerBundle-generated User entity, symfonycasts/verify-email-bundle, and symfonycasts/reset-password-bundle. If group/role management is genuinely needed, implement it as a domain concern rather than importing a deprecated bundle's model layer.Migration path
fos_user.* events, custom form types, and Twig template overrides first — those are the real migration cost. Move to the native user provider behind the same User table so password hashes remain valid, then retire the bundle.Hasher implementation, with a rehash-on-login strategy to migrate to bcrypt/argon2id.Compatibility
composer.json constraints against the actual runtime. Expect conflicts: FOSUserBundle-era Symfony packages pin against Symfony 3/4/5 lines and will not co-resolve with Symfony 6/7 or modern doctrine/orm.Sequencing (with gates)
composer.json, LICENSE, and any tests. Gate: security/legal sign-off. Expect this to fail.Maintenance
Support
Scaling
Failure modes
Ramp-up
Recommendation: reject for Laravel on framework grounds; reject for Symfony on maintenance and supply-chain grounds. Spend one day confirming the target framework and diffing the fork, then redirect to laravel/fortify (Laravel) or the native Symfony security stack (Symfony).
How can I help you explore Laravel packages today?