Symfony 4 - Créer un blog pas à pas - Structurer et créer la base de données

Par Nouvelle-Techno.fr le 31 juillet 2019 - Catégories : MVC Tutoriel Symfony

Lire l'article sur le site d'origine

Dans ce deuxième article, nous allons créer et structurer la base de données en utilisant Symfony.

Nous allons effectuer ces actions en utilisant le terminal et les commandes intégrées à Symfony.

Structure de la base de données

Pour gérer notre blog, nous aurons besoin de stocker différentes informations en suivant les règles suivantes :

En suivant ces règles, nous arrivons au modèle de données ci-dessous

Nous avons 5 tables :

Les relations entre les tables sont les suivantes :

Création de la base de données

Pour créer la base de données, Symfony nous met à disposition une commande de terminal par l'intermédiaire de l'extension Doctrine (préinstallée par défaut)

Les informations de connexion s'inscrivent dans le fichier .env situé à la racine du projet

Voici la ligne de ce fichier qui correspond à cette connexion

DATABASE_URL=mysql://root@localhost:3306/monblog

Après avoir mis à jour le fichier .env, nous procédons à la création de la base de données en entrant la commande suivante

php bin/console doctrine:database:create

Création des tables

Pour créer les tables, nous allons nous servir d'une fonctionnalité de Doctrine appelée migrations

Les migrations sont des fichiers PHP qui contiennent des requêtes SQL permettant de créer, modifier ou supprimer des tables.

Symfony nous permet de crées ces migrations de façon automatisée.

Pour commencer, nous allons créer les objets PHP (Classes) correspondant à chacune de nos tables. Il s'agit des entités (Entity). Chacune de ces entités correspond à une table et contiendra les propriétés correspondant aux champs, et les Getters et Setters permettant de les lire et les écrire.

Création de l'entité

Pour créer une entité, nous exécutons la commande suivante :

php bin/console make:entity

Prenons l'exemple des catégories, nous allons répondre à différentes questions afin de créer l'entité.

Nous avons 3 champs dans cette table

Voici les réponses aux différentes questions

La création de l'entité a généré 2 fichiers PHP.

Le fichier src/Entity/Categories.php contient les propriétés, les Getters et Setters.

Le fichier src/Repository/CategoriesRepository.php contiendra les requêtes personalisées.

Nous verrons ces fichiers en détails dans un prochain article.

Lors de l'assistant nous devons renseigner le type de champs, voici une liste des principaux types, la liste complète est disponible en tapant ? comme réponse à la question

Création de la migration

Après avoir créé ou modifié les entités, nous allons créer le fichier de migration qui contiendra toutes les requêtes SQL relatives à la création ou la modification des tables.

Pour créer la migration, nous devons exécuter la commande ci-dessous

php bin/console make:migration

Cette commande génère un fichier dans le dossier src/Migrations

Une fois ce fichier créé, nous exécutons les requêtes au moyen de la commande

php bin/console doctrine:migrations:migrate

Quand cette commande est exécutée, les tables correspondantes sont créées dans la base de données.

Dans le chapitre suivant, nous traiterons des relations entre les tables.

#Tutoriel #Base de données #Models #MVC #Symfony