Maîtrisez les bases de données avec Symfony et Doctrine
Maîtrisez les bases de données avec Symfony et Doctrine
-
Objectifs
-
Présentation
-
Modèles, sans Doctrine
-
Pour configurer Doctrine et lui permettre d’interagir avec notre base de données, nous devons indiquer à Doctrine où se trouve cette base de données.
Cette information de connexion à la base de données doit être placée dans une variable d’environnement appelée DATABASE_URL, située dans le fichier .env à la racine de votre projet. Voici un exemple de configuration :
makefile
Copy code
DATABASE_URL= »mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=8&charset=utf8mb4″
Dans cette URL :
« app » (le premier) représente le nom d’utilisateur pour accéder à votre base de données. En local, avec WAMP ou MAMP, c’est généralement « root » par défaut.
« !ChangeMe! » est le mot de passe pour accéder à votre base de données. En local, avec WAMP, il n’y en a pas par défaut (vous pouvez supprimer « !ChangeMe! » et ne rien mettre à la place). Avec MAMP, c’est généralement « root » par défaut.
« 127.0.0.1:3306 » est l’adresse de votre base de données. En local, c’est généralement « 127.0.0.1:3306 » ou « localhost:3306 ». 3306 est le port d’écoute de MySQL. Si vous utilisez le serveur MariaDB, il est possible que cela ne fonctionne pas, auquel cas vous devez spécifier le port 3307. Si cela ne fonctionne toujours pas, spécifiez la version de votre serveur à la fin de cette ligne de code avec ?serverVersion=***. Vous pouvez facilement connaître votre numéro de version en exécutant la requête SQL SHOW GLOBAL VARIABLES LIKE ‘%version%’ dans phpMyAdmin.
« app » (le second) est le nom de votre base de données.
Une fois cette configuration effectuée, nous pouvons créer la base de données correspondante en utilisant la commande suivante dans Symfony Console :
javascript
Copy code
symfony console doctrine:database:create
Si vous rencontrez l’erreur « An exception occurred in the driver: SQLSTATE[HY000] [2002] Aucune connexion n’a pu être établie car l’ordinateur cible l’a expressément refusée », cela signifie que votre serveur local n’est pas démarré.
Pour supprimer la base de données, vous pouvez utiliser la commande suivante :
javascript
Copy code
symfony console doctrine:database:drop
Il est également possible de modifier la structure de la base de données en générant des migrations. Nous aborderons ce point à la fin de ce chapitre.