MBO-SD : De site voor software developer in het MBO
Annotations in Symfony
Routeren in Symfony
            Routeren in Symfony kan op twee manieren. Het kan via een configuratie bestand 
                config/routes.yaml of config/routes.php of het kan via
            annotation.
            
            Voor beide oplossingen is wat te zeggen. Het voordeel van een routes-bestand is dat je alle routes bij elkaar
            hebt en je snel kan zien waar een route heen gaat, maar je moet dan altijd de betreffende Controller opzoeken.
            
            Bij de Annotation oplossing staan de routes boven de functies in je Controller. Dit is binnen een
            controller overzichtelijk en als je logisch programmeert ook snel en goed te vinden. Het nadeel is dat je niet
            een bestand hebt als oplossing voor je routes.
        
Op MBO-SD gebruiken we de Annotation oplossing
            Binnen MBO-SD gebruiken we de Annotation oplossing. Je zult dus in de Controllers de routes
            terug vinden. Boven elke functie die bij een route hoort zal je een stuk code zien staan.
            
            In de Use sectie van je Controller moet je de Route optie aangeven om te gebruiken. Dit
            doe je door de volgende Use-statement op te nemen:
            
            use Symfony\Component\Routing\Attribute\Route;
            
            Als jouw Symfony project in de basis gemaakt is met de --webapp parameter zal dit standaard het
            geval zijn.
            
            Daarna kan je jouw route boven een functie zetten in jouw Controller(s)
        
Maak vooraf een overzicht van je routes en controllers
Het is belangrijk om goed over jouw routes en oplossingen na te denken en voor je gaat programmeren te starten met alle routes en Controllers in kaart te brengen en in een tabel te zetten. Zo weet je welke routes je nodig hebt en kan je alles logisch in elkaar knutsellen.
Hoe werkt Annotation
Bij Annotation zet je boven een functie de route met eventueel extra informatie neer.
#[Route('/book', name: 'app_book')]
public function index(): Response
{
    return $this->render('book/index.html.twig', [
        'controller_name' => 'BookController',
    ]);
}/book de naam van de route is app_book
        . Deze naam kan je later gebruiken om naar de juiste route te verwijzen.
        
        Meer informatie over de werking van de routes en hoe je ze in jouw Controller gebruikt vind je in de volgende paragraaf.
Overzicht van alle routes
            In Symfony kan je met een termninal-commando alle routes tonen die er zijn en wat de naam van de route is
            
            symfony console debug:router
            
# symfony console debug:router
----------------  -------  -------  -----  --------------------------------------------
Name              Method   Scheme   Host   Path
----------------  -------  -------  -----  --------------------------------------------
homepage          ANY      ANY      ANY    /
contact           GET      ANY      ANY    /contact
contact_process   POST     ANY      ANY    /contact
article_show      ANY      ANY      ANY    /articles/{_locale}/{year}/{title}.{_format}
blog              ANY      ANY      ANY    /blog/{page}
blog_show         ANY      ANY      ANY    /blog/{slug}
----------------  -------  -------  -----  --------------------------------------------Meer informatie over een route
Je kan ook met de naam van een route met dit commando meer informatie ophalen, bijvoorbeeld in welke Controller de route gemaakt is. Dit doe je door de naam van de route toe te voegen aan het commando.
# symfony console debug:router app_book
+--------------+---------------------------------------------------------+
| Property     | Value                                                   |
+--------------+---------------------------------------------------------+
| Route Name   | app_book                                                |
| Path         | /book/{book}                                            |
| Path Regex   | {^/book/(?P<book>[^/]++)$}sDu                           |
| Host         | ANY                                                     |
| Host Regex   |                                                         |
| Scheme       | ANY                                                     |
| Method       | ANY                                                     |
| Requirements | NO CUSTOM                                               |
| Class        | Symfony\Component\Routing\Route                         |
| Defaults     | _controller: App\Controller\BookController::index()     |
| Options      | compiler_class: Symfony\Component\Routing\RouteCompiler |
|              | utf8: true                                              |
+--------------+---------------------------------------------------------+
            