Exercice d'analyse de consignes
Voici un exemple de consignes que vous aviez eu lors d'un exercice de soutien : reformulez là avec vos mots et confrontez votre compréhension à celle de l'IA. L'IA ne doit pas vous fournir de code, uniquement vous indiquer si ce que vous envisagez de faire est bon ou pas.
La consigne à analyser :
Étape 1 : Mise en place du Routeur
Voici la liste des routes et des méthodes correspondantes :
index.php?route=show_user-> la méthode show() du UserController
index.php?route=create_user-> la méthode create() du UserController
index.php?route=check_create_user-> la méthode checkCreate() du UserController
index.php?route=update_user-> la méthode update() du UserController
index.php?route=check_update_user-> la méthode checkUpdate() du UserController
index.php?route=delete_user-> la méthode delete() du UserController
Dans tous les autres cas : la méthode list() du UserController
Pour le moment, vous n'avez pas de controller, du coup dans les accolades de vos conditions, notez simplement en commentaire le nom du controller et de la méthode qui devra être appelée.
Exemple de résultat attendu :
Mon Prompt :
J'ai cette consigne a réaliser pour un exercice :
"
Étape 1 : Mise en place du Routeur
Voici la liste des routes et des méthodes correspondantes :
index.php?route=show_user-> la méthode show() du UserController
index.php?route=create_user-> la méthode create() du UserController
index.php?route=check_create_user-> la méthode checkCreate() du UserController
index.php?route=update_user-> la méthode update() du UserController
index.php?route=check_update_user-> la méthode checkUpdate() du UserController
index.php?route=delete_user-> la méthode delete() du UserController
Dans tous les autres cas : la méthode list() du UserController
Pour le moment, vous n'avez pas de controller, du coup dans les accolades de vos conditions, notez simplement en commentaire le nom du controller et de la méthode qui devra être appelée.
"
De ce que je comprends je dois juste mettre les définitions des différentes fonctions des controllers pour fabriquer mon routeur.
Est-ce que j'ai bien compris ? Tu as d'autres éléments qui te semble pertinent pour réaliser la consigne ? (Attention je ne veux pas que tu me génère le code)
Réponse de Gemini 3 (mode raisonnement) :
C'est un excellent début, mais attention : il y a une petite nuance importante dans ta compréhension de ce qu'est un **routeur**.
Tu ne vas pas "définir les fonctions" (écrire le code des méthodes `show`, `create`, etc.) à cette étape. En fait, le routeur est l'aiguilleur du train : il regarde où l'usager veut aller et il le redirige vers le bon quai.
### Ce que tu dois réellement faire
Ton travail ici est de créer la **structure de contrôle** dans ton fichier `index.php`. Comme la consigne précise que tu n'as pas encore de Controller, ton code ne doit pas essayer d'appeler de vraies fonctions, mais simplement identifier quelle route a été demandée.
Voici les éléments qui me semblent pertinents pour réussir cet exercice proprement :
### 1. La récupération de la route
Ton routeur doit d'abord "écouter" ce qui se passe dans l'URL. En PHP, cela signifie qu'il faut aller chercher la valeur associée à la clé `route` dans la superglobale `$_GET`.
* **Conseil :** Pense à vérifier si la clé `route` existe bien dans l'URL avant de l'utiliser (avec `isset()` ou l'opérateur de coalescence nulle `??`), sinon PHP risque de râler si tu arrives juste sur `index.php`.
### 2. La structure de choix (Le "Switch")
Pour gérer autant de cas (show, create, check, etc.), tu as deux options principales :
* Une suite de `if / elseif / else`.
* Un bloc `switch`.
Le `switch` est souvent plus lisible quand on compare une seule variable à plusieurs valeurs précises comme c'est le cas ici.
### 3. La gestion du cas par défaut
La consigne dit : *"Dans tous les autres cas : la méthode list() du UserController"*.
C'est crucial ! Ton routeur doit être robuste. Si l'utilisateur tape `?route=n-importe-quoi`, ton code doit savoir qu'il faut quand même afficher la liste. C'est ton filet de sécurité (le `default` d'un switch ou le `else` final).
### 4. Le respect strict de la consigne sur les commentaires
Puisque tu ne "branches" pas encore les moteurs, tes accolades ressembleront à ça (en pseudo-code) :
php
// Si la route est 'show_user'
{
// Appeler UserController -> show()
}
---
**En résumé :** Tu ne construis pas encore le moteur de la voiture (les méthodes), tu dessines seulement le tableau de bord avec les boutons qui indiquent où le signal doit être envoyé.
Est-ce que cette distinction entre "aiguiller" et "exécuter" est plus claire pour toi ? Si tu veux, on peut regarder ensemble comment tu comptes structurer ton `switch` ou tes `if` !
23 March 2026