Skip to content

Commit

Permalink
update build first page
Browse files Browse the repository at this point in the history
  • Loading branch information
bfoujols committed Jul 10, 2024
1 parent 7c20741 commit 034350d
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 11 deletions.
3 changes: 0 additions & 3 deletions docs/_summary.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,6 @@
* [Arborescence](build/arborescence.md)
* [Comment construire une page ?](build/controller-edu.md)
* [Comment construire un formulaire en methode POST](build/controller-edu-post.md)
* [Construire un CRUD](build/dataservice-crud.md)
* [Use case "VILLE" : STEP 1](build/use-case-ville.md)
* [Use case "VILLE" : STEP 2](build/use-case-ville-refactor.md)
* [Comment construire une commande CLI](build/new-command-edu.md)
* [Consolider](boost/index.md)
* [Request - La gestion des requêtes HTTP](boost/resquet.md)
Expand Down
41 changes: 38 additions & 3 deletions docs/build/controller-edu.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,44 @@
# Comment faire un controller ?

Pour créer un controller, vous pouvez utiliser la commande "edu" à la racine de votre projet.
!!! info "Rappel d'un controller"

Un contrôleur est l'intermédiaire entre le modèle et la vue. Il gère les événements utilisateur, effectue les traitements nécessaires et coordonne les mises à jour entre le modèle et la vue.

Pour créer un controller, rien de plus simple, la commande "edu" est là pour vous aider.

Vous pouvez l'utiliser à la racine de votre projet en tapant la commande suivante :

```Shell
php bin/edu make:controller NOM_DU_CONTROLLER
```

N'oubliez pas de remplacer **"NOM_DU_CONTROLLER"** par le nom de votre controller.

<br>

# Exemple de création d'un controller

Nous allons créer un page "Hello" avec la commande suivante :

```Shell
php bin/edu make:controller Hello
```

La commande va générer un controller "HelloController.php" dans le dossier "src/Controller" et un fichier "hello.html.twig" dans le dossier "src/Template/hello".
Voici l'arborecence des fichiers générés :

``` hl_lines="5 8 9"
├── app
│ ├── Config
│ │ └── routes.yaml
│ ├── Controller
│ │ └── HelloController.php
│ └── Template
│ ├── base.html.twig
│ └── hello
│ └── hello.html.twig
```

### Le fichier HelloController.php
Cette commande va créer un fichier "HelloController.php" dans le dossier "src/Controller".

Expand Down Expand Up @@ -45,7 +70,9 @@ class HelloController implements ControllerInterface

On peut voir que le controller HelloController implémente l'interface ControllerInterface.

La méthode execute prend en paramètre un objet de type [Request](../boost/resquet.md) et retourne une chaine de caractère ou null.
La méthode `execute()` prend en paramètre un objet de type [Request](../boost/resquet.md) et retourne une chaine de caractère (string) ou null.
La couche vue est gérée par le moteur de template Twig. On utilise la méthode `render()` de la classe TwigCore pour afficher le template "hello/hello.html.twig".
Deux variables sont passées au template : "titre" et "request".

!!! info

Expand All @@ -65,6 +92,10 @@ Et va aussi créer un fichier "hello.html.twig" dans le dossier "src/Template/he
{% endblock %}
```

Dans la vue "hello.html.twig", on affiche le titre de la page "HelloController" dans un h1. Une variable `{{ titre }}` est passée au template via le controller.

Vous pouvez accéder à votre controller en tapant l'url suivante : [http://localhost:8042/hello](http://localhost:8042/hello){:target="_blank"}

## Modifier le fichier des routes
Et modifier le fichier des routes "config/routes.yaml" pour ajouter la route de votre controller.

Expand All @@ -89,7 +120,11 @@ hello:
```
Vous pouvez accéder à votre controller en tapant l'url suivante : [http://localhost:8042/bonjour](http://localhost:8042/bonjour){:target="_blank"}
## Schema pour comprendre le fonctionnement pour aller vers controller
Si nous allons de nouveau sur l'url [http://localhost:8042/hello](http://localhost:8042/hello){:target="_blank"}, une erreur `HTTP 404` sera retournée.
Pour rappel, l'erreur `HTTP 404 signifie que la ressource demandée (route) n'existe pas ou plus.


## Schema pour mieux comprendre le fonctionnement

<figure markdown="span">
![Controller Process](../assets/controller.png)
Expand Down
6 changes: 1 addition & 5 deletions docs/build/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,7 @@ Pour créer un formulaire dans une page, vous devez suivre les instructions suiv

## 3. Gestion des données avec un service

Pour gérer les données de votre application, vous devez suivre les instructions suivantes :

- [Construire un CRUD](dataservice-crud.md)
- [Use case "VILLE" : STEP 1](use-case-ville.md)
- [Use case "VILLE" : STEP 2](use-case-ville-refactor.md)
- Coming soon

## 4. Construire une commande CLI

Expand Down

0 comments on commit 034350d

Please sign in to comment.