Construire avec Edu Framework¶
Cette section vous guide, étape par étape, de votre première page jusqu'à une application complète : formulaire, CRUD, API, commande CLI et tests. Chaque étape est l'occasion d'apprendre une notion que l'on retrouvera ensuite telle quelle dans un framework professionnel comme Symfony.
Les pages sont regroupées en quatre thèmes, avec pour chacune ce que l'on construit et la notion travaillée.
-
Comprendre
Le concept d'architecture MVC et l'arborescence d'un projet Edu Framework, avant d'écrire la moindre ligne.
-
Construire
Une page, un formulaire protégé, le CRUD d'une entité, une API JSON et une commande CLI.
-
Tester
Vérifier automatiquement le bon fonctionnement de son code avec PHPUnit.
-
Approfondir
La requête HTTP, les données, les routes, les erreurs, la barre de debug et le profiler.
Comprendre les fondations¶
Avant de débuter, vous devez comprendre les points suivants :
| Page | Ce que l'on apprend |
|---|---|
| Le concept d'architecture MVC | Séparer la logique (controller), les données (modèle) et l'affichage (vue), autour d'un cycle requête / réponse |
| L'arborescence du projet | Savoir où se trouvent les controllers, les templates, la configuration et les fichiers publics |
Construire pas à pas¶
Suivez les étapes dans l'ordre : chacune s'appuie sur la précédente.
| Étape | Ce que l'on construit | Ce que l'on apprend |
|---|---|---|
| 1. Construire une page | Un controller, sa route et son template Twig | Associer une URL à un controller, générer du HTML avec Twig |
| 2. Construire un formulaire | Un formulaire envoyé en méthode POST |
Lire les données envoyées avec l'objet Request |
| 3. Protéger un formulaire (CSRF) | Un jeton CSRF dans le formulaire | Se protéger contre la falsification de requête inter-sites |
| 4. Construire le CRUD | La liste, l'ajout, la modification et la suppression d'une ville | Entités, repositories et requêtes SQL préparées |
| 5. Construire une API | Une API JSON documentée au format OpenAPI | Codes de statut HTTP, format JSON, documentation d'API |
| 6. Construire une commande CLI | Une nouvelle commande bin/edu |
Automatiser une tâche en ligne de commande |
Tester son application¶
| Page | Ce que l'on apprend |
|---|---|
| Tester son application (tests unitaires) | Écrire et lancer des tests PHPUnit, tester plusieurs cas avec un DataProvider, tester un repository et un controller |
Approfondir le framework¶
Après une première prise en main, ces pages détaillent les briques utilisées dans les étapes précédentes.
| Page | Ce que l'on apprend | Dans Symfony |
|---|---|---|
| Request - La gestion des requêtes HTTP | Lire les paramètres, la méthode HTTP, les en-têtes et les fichiers envoyés | Request de HttpFoundation |
| DatabaseService - La gestion des données | Se connecter à une base MySQL, MariaDB ou SQLite | Doctrine DBAL |
| Route - Générer une URL par le nom | Ne jamais écrire une URL « en dur » dans le code ou les templates | path(), generateUrl() |
| Les erreurs HTTP | Les codes 403, 404, 405 et 500, et la personnalisation des pages d'erreur | HttpException, templates d'erreur |
| La barre de debug et le profiler | Analyser une requête, ses requêtes SQL et ses performances | Web Debug Toolbar et Profiler |
Voir toutes les fonctionnalités
La page Les fonctionnalités présente l'ensemble des briques du framework et leur équivalent dans Symfony.