presta/cms-user-bundle
PrestaCMS User Bundle provides user management for Symfony CMS sites, handling accounts, authentication, roles, and admin screens. It integrates user entities with the CMS so you can manage access and profiles without building auth from scratch.
Before anything else: confirm what you're actually installing. presta/cms-user-bundle is not a Laravel package — it's a Symfony 2.x bundle built on top of FOSUserBundle and PrestaCMS CoreBundle, last tagged in February 2014 and now archived. composer require presta/cms-user-bundle inside a Laravel 9+/10/11 app will not resolve cleanly; you'll drag in symfony/framework-bundle constraints from the PHP 5.4/5.5 era and Composer will abort on platform requirements.
If you still need to evaluate it (e.g. you're auditing a legacy PrestaCMS install):
README.md first — it is short and assumes you already run PrestaCMS. There is no Laravel-style "publish the config" step.composer.json for the actual Symfony constraint (typically ~2.3), FOSUserBundle version, and PHP floor. This is the real gate on whether it installs at all.PrestaCMSUserBundle in app/AppKernel.php after FOSUserBundle and PrestaCMSCoreBundle, then import its routing.For a Laravel team: treat this as a reference implementation, not a dependency. The concepts (a separate front firewall, a user provider, registration/profile controllers, role hierarchy) all have direct Laravel equivalents — read the bundle's Resources/config/ and controllers, then build the equivalent with Auth, Gate, and a plain Eloquent User model.
If you are on the (legacy) Symfony side, the typical wiring looks like:
FOSUserBundle → PrestaCMSCoreBundle → PrestaCMSUserBundle, and the security.yml firewalls list must define a front firewall that points at the bundle's user provider, kept distinct from the admin firewall.MappedSuperclass pattern) so you can add fields. In Laravel terms: don't modify the vendor model — extend it via a subclass and let migrations run against your subclass.presta_cms_user: in app/config/routing.yml pulls in all public-facing routes (register, login, profile, password reset). You override individual templates under app/Resources/PrestaCMSUserBundle/views/ rather than editing the bundle.Translating to a Laravel workflow (the part you'll actually use day-to-day):
front vs admin split with two guards in config/auth.php. The bundle exists because mixing CMS editors and site visitors in one user table is painful; keep that separation in any Laravel port.User::create() → fire a Registered event. Same shape.$this->authorize('update', $user) with a policy is the Laravel equivalent of the bundle's voter check.password_resets / email_verification tokens rather than re-implementing.each(), create_function, dynamic properties, missing return types). Running it on a modern stack is not a config problem — it's a rewrite.composer.json pins an old FOSUserBundle range. If any other dependency wants a newer FOSUserBundle, resolution fails or, worse, silently installs a mismatch that breaks at runtime in UserManager.front firewall exists. Forgetting it, or naming it differently, produces confusing "no user provider" errors at login rather than at boot.MappedSuperclass base show up as ORMException at schema-tool time, not at request time — always run doctrine:schema:validate after adding fields.app/Resources/PrestaCMSUserBundle/views/, not by forking the bundle — forks make future (hypothetical) upgrades impossible and hide your changes.Bottom line for a Laravel developer: this is a historical Symfony bundle, archived and effectively unmaintained. There is no day-to-day Laravel use case — you cannot meaningfully install or leverage it in a Laravel app today. The value is architectural: it's a clean, small reference for separating front-end site users from admin users, which translates neatly into two Laravel guards and a User/Admin model split. If you need this functionality in Laravel, build it natively (laravel/breeze or laravel/jetstream plus a policy-gated profile) rather than trying to bridge Symfony 2 code.
How can I help you explore Laravel packages today?