Voorbereidingen

Lees dit hoofdstuk goed!

Zoal alle hoofdstukken moet je ook dit hoofdstuk goed lezen. Maar nu is het 'nog' belangrijker!
De stappen in dit hoofdstuk moet je stuk voor stuk doorlopen om er voor te zorgen dat alles goed werkt. We hopen je uiteraard zo goed mogelijk op weg te helpen.

Symfony console of php bin/console

Binnen Symfony kan je op twee manieren de console commando's uitvoeren. Als je de symfony-cli hebt geinstalleerd dan kan alles met het commando symfony <commando> of symfony console <commando>

Als dit niet werkt dan heb je het php bin <commando> of php bin/console <commando> nodig.
We adviseren om symfony-cli te installeren en te gebruiken.

Vooraf

Deze handleiding is geschreven voor de basis installatie van de webapp versie van Symfony versie 6.4. Daarbij worden een hoop packages al vooraf geinstalleerd via composer install. Dit is belangrijk om te weten, als je verder leest op de basis pagina's van Symfony zal je hier rekening mee moeten houden.

Deze handleiding is een afgeleide van de handleiding op de officiele Symfony handleiding.

Packages en punten die al geinstalleerd zijn (vanuit de handleiding):

  • symfony/security-bundle is al geinstalleerd
  • config/packages/security.yaml bestaat al en klopt
Hier hoef je dus niets voor te doen.

De User entity aanmaken

Om in te kunnen loggen hebben we een nieuwe entity nodig, de User entity. Dit doe je door het console commando symfony console make:user

Let op! gebruik niet het commando make:entity, dit maakt ook de user-entity aan, maar slaat een aantal belangrijke zaken over.

Als je het commando uitvoert kan je zoals je gewend bent een nieuwe entity maken, de User entity. (LET OP als het goed is hoef je op bijna alle vragen alleen op enter te drukken. Maar lees de vragen altijd goed door!.

# symfony console make:user
 The name of the security user class (e.g. User) [User]:
 > User

 Do you want to store user data in the database (via Doctrine)? (yes/no) [yes]:
 > yes

 Enter a property name that will be the unique "display" name for the user
(e.g. email, username, uuid) [email]:
 > email

 Will this app need to hash/check user passwords? Choose No if passwords are not
needed or will be checked/hashed by some other system (e.g. a single sign-on server).

 Does this app need to hash/check user passwords? (yes/no) [yes]:
 > yes

 created: src/Entity/User.php
 created: src/Repository/UserRepository.php
 updated: src/Entity/User.php
 updated: config/packages/security.yaml

De User entity is nu gemaakt in src/Entity/User.php bestand. Als deze naar wens is kan je nu de database migratie uitvoeren, maar je kan ook met symfony console make:entity User nog velden toevoegen, bijvoorbeeld een voornaam, achternaam, adres etc.

Voer nu de migratie commando's uit:

php bin/console make:migration
php bin/console doctrine:migrations:migrate

Je bent nu klaar om gebruikers te registreren!