Canonicalization¶
NucleosUserBundle stores canonicalized versions of the username and the email
which are used when querying and checking for uniqueness.
The default implementation makes them case-insensitive to avoid having
users whose username only differs because of the case. It uses mb_convert_case
to achieve this result.
Caution
If you do not have the mbstring extension installed you will need to define your own canonicalizer.
Replacing the canonicalizers¶
If you want to change the way the canonical fields are populated,
create a class implementing Nucleos\UserBundle\Util\CanonicalizerInterface
and register it as a service:
# config/services.yaml
services:
app.my_canonicalizer:
class: App\Util\CustomCanonicalizer
public: false
You can now configure NucleosUserBundle to use your own implementation:
# config/packages/nucleos_user.yaml
nucleos_user:
# ...
service:
email_canonicalizer: app.my_canonicalizer
username_canonicalizer: app.my_canonicalizer
You can of course use different services for each field if you don’t want to use the same logic.
Note
The default implementation has the id nucleos_user.util.canonicalizer.simple
.