Plan de transformation
- Installez Data avec le pilote sqlite.
- Générez Book comme entité persistante.
- Créez et appliquez create_books_table.
- Ajoutez AppDbContext et injectez-le dans BookController.
- Remplacez les lectures et écritures de session par DbSet.
Les commandes
aml install data --driver sqlite
aml make:entity Book
aml make:migration create_books_table
aml data:migrate
aml data:status
aml testCe qui change dans le contrôleur
AVANT — SESSION
$books = $this->session->get('books', []);
APRÈS — DATA
$books = $this->db->books()->orderBy('title')->all();
La vue reçoit toujours books. Le changement de stockage reste donc dans la couche responsable des données; le HTML n’a pas besoin de connaître SQLite.
Plan de vérification
Créer puis rechargerle livre reste visible
Nouvelle session navigateurmême catalogue
Identifiant absent404
Migration relancéeaucun doublon
Titre invalideaucune ligne créée
Limites à comprendre
SQLite convient très bien à cet atelier. Une forte écriture concurrente ou plusieurs serveurs peuvent justifier MySQL, MariaDB ou PostgreSQL. Le choix du moteur dépend du besoin mesuré, pas d’une mode.
EN RÉSUMÉ
Ce qu’il faut retenir
- Une entité représente une ligne sous forme d’objet PHP.
- Une migration versionne la structure de la base.
- DbSet fournit lecture, recherche, ajout, modification et suppression.
- DbContext peut suivre les changements et les enregistrer en transaction.
- Les vues restent indépendantes du moteur de stockage.