Migrate from FOSUserBundle

Prerequisites

In order to migrate from FOSUserBundle, you must use a supported PHP version and supported symfony version. There is no support for unmaintained PHP or symfony versions!

Start migration

The main difference between both bundles is the service and configuration prefix. FOS uses fos_user and our bundles uses nucleos_user (respectively nucleos_profile)

Step 1: Update configuration

Install this bundle and the NucleosProfileBundle:

$ composer require nucleos/user-bundle nucleos/profile-bundle

Step 2: Update configuration

Inside the configurations under config/packages/ you need to replace the prefix fos_user with nucleos_user for the most keys. Some keys related to profile management or registration need a nucleos_profile prefix.

Step 3: Update routing

The same rule applies for the routing files located under config/routes. You need to replace the @FOSUserBundle import with @NucleosProfileBundle.

Step 4: Clean cache

Now the migration is finished. The last step if to clear the cache.

$ php bin/console cache:clear

Optional: Use FOSUserBundle polyfill

There is a polyfill for the most used FOS classes and interfaces. This will use PHP aliases to map the old components to the new namespace.

Some interfaces/classes have a different signature and could cause problems. It is safe to use if you or a third party library is not implementing one of the old FOS classes.

Require the bundle with composer:

$ composer require nucleos/fos-user-bundle-polyfill

Warning

Be aware this library uses the composer replaces function to fake the FOSUserBundle. This can cause problems, if you need specific bundle features.

Problems

If you have problems feel free to open an issue or have a look at the docs as there are some more internal refactorings:

  • Using symfony mailer instead of swiftmailer
  • Add strict type hints
  • Closing API. Most classes have beed marked as final
  • E-Mail address and Usernames are non-nullable
  • Forms do not use the user model and have specific form models