MBO-SD : De site voor software developer in het MBO
Controllers in Symfony
Wat is een Controller
            Een Controller is het hart van jouw applicatie. In een Controller worden alle gegevens verwerkt,
            staan de routes naar je pagina's en wordt data opgehaald, gecontroleerd en opgeslagen in de database.
            
            Waar nodig kan een Controller ook andere dingen doen zoals het verzenden van een e-mail of data uit een
            andere applicatie ophalen (API) of verzenden. Denk bijvoorbeeld aan een connectie met het betaalsysteem van
            Mollie (/iDEAL)
        
Een nieuwe controller aanmaken
            Om een controller aan te maken heb je in de basis het symfony commando nodig 
                symfony console make:controller [ControllerName]. Je kan de naam van de Controller direct
            meegeven, als je dit niet doet zal Symfony om de naam van jouw controller vragen.
        
# symfony console make:controller Book
 created: src/Controller/BookController.php
 created: templates/book/index.html.twig
  Success!
 Next: Open your new controller class and add some pages!src/Controller/BookController.php en een TWIG bestand in
        templates/book/index.html.twig
        Als je jouw controller bekijkt zal er meteen een basis
route naar een index.twig.html
        gecreeerd zijn.
        <?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class BookController extends AbstractController
{
   #[Route('/book', name: 'app_book')]
   public function index(): Response
   {
       return $this->render('book/index.html.twig', [
           'controller_name' => 'BookController',
       ]);
   }
}Controllers worden enkelvoudig geschreven!
Hoe noem je jouw controller?
            Door de vrijheid van Symfony kan je een Controller alle namen van de wereld geven. De vraag is
            vooral wat doet! je Controller.
            Veelal hebben Entities (Models) een eigen controller, zeker als er voor de Entity ook een
            CRUD gemaakt moet worden. Alle functies (methods) van de Entity zitten dan in die Controller.
            
            Soms heb je ook speciale Controllers die specifiek iets zeggen over een rol of afhandeling in jouw applicatie.
            
            Een AdminController kan gemaakt worden voor alle routes die iemand met een rol ROLE_ADMIN
            heeft.
            
            Een SecurityController kan gemaakt worden voor het afhandelen van beveiligingsopties bijvoorbeeld
            het inloggen en uitloggen.
        
Belangrijkste vraag
            De belangrijkste vraag die bij de naam van een Controller komt kijken is wat ga je er mee doen en is het
            kies voor dat wat er gaat gebeuren of wat het doet een logische naam. Net als dat je bij een route een logische route-naam kiest. Denk hier van te voren GOED
            over na!
            
            Een aantal belangrijke dingen om mee te nemen:
            
- Een Controller is altijd enkelvoud
- 
                Een Controller is (bijna) altijd een woord met Controllerer aan vast.
 Er zijn uitzonderingen, maar denk er goed overna!
- Een Controller is nooit een afkorting, maak lievere een langere bestandsnaam
