BCard - Documentation technique

UserType extends AbstractType
in package

Formulaire de création et d'édition d'un utilisateur, côté administration.

Alimente l'entité User : nom, e-mail, pays, rôle (roles, choix unique restitué comme tableau via un CallbackTransformer) et le numéro de téléphone. Le champ roles propose ROLE_USER, ROLE_MANAGER, ROLE_OPERATOR et ROLE_SUPPORT, complété par ROLE_ADMIN lorsque l'option is_admin vaut true. Le téléphone est saisi via le champ non mappé phoneNumberInput (PhoneNumberType, indicatif + numéro, région par défaut GN) ; un listener POST_SET_DATA le préremplit depuis phoneNumber à l'édition, et un listener PRE_SUBMIT recompose phoneNumber (format +<indicatif> <numéro>) à partir de la saisie avant validation.

Les champs companyName, companyEmployeeCount, companyAddress, companyCity, companyCountry, companyPhone, companyWebsite et companyEmail ne sont pas mappés ('mapped' => false) : ils ne servent qu'aux comptes ROLE_MANAGER et sont lus par le contrôleur appelant (admin\UserController) pour construire et rattacher une entité Company (setName(), setEmployeeCount(), setAddress(), setCity(), …). Le champ plainPassword (répété, non mappé) est également lu par le contrôleur, qui le hache avant assignation. Le champ profil_img (image de profil, JPEG/JPG/PNG, 1024 Ko maximum) n'est pas mappé non plus ; son enregistrement est laissé au contrôleur.

Un listener PRE_SUBMIT porte des règles de validation conditionnelles au rôle : pour ROLE_MANAGER, il rejette les domaines d'e-mail personnels (via App\Validator\Constraints\ BusinessEmail) et rend obligatoires companyName, companyAddress, companyCity, companyCountry et companyEmployeeCount (celui-ci devant en outre être un nombre supérieur ou égal à 2).

Options personnalisées attendues par configureOptions() : include_password (affiche le champ plainPassword), password_required (le rend obligatoire) et is_admin (ajoute le choix ROLE_ADMIN).

Table of Contents

Methods

buildForm()  : void
configureOptions()  : void
normalizePhoneNumber()  : string

Methods

buildForm()

public buildForm(FormBuilderInterface $builder, array<string|int, mixed> $options) : void
Parameters
$builder : FormBuilderInterface
$options : array<string|int, mixed>

configureOptions()

public configureOptions(OptionsResolver $resolver) : void
Parameters
$resolver : OptionsResolver

normalizePhoneNumber()

private normalizePhoneNumber(string $phoneNumber) : string
Parameters
$phoneNumber : string
Return values
string

        
On this page

Search results