Découvrir la console Doctrine
Une fois la base de données configurée dans votre environnement Symfony, vous pouvez vous amuser avec la console Symfony afin de gérer votre base de données.
La console Doctrine
La console est un outil magique pour le développeur, sans quitter le terminal, vous pouvez créer une base de données, lancer la création du schéma, charger des données de tests et exécuter des requêtes SQL.
Voici les commandes les plus utiles :
La base
1 2 3 4 5 |
$ cd dossierDeBaseDuProjetSymfony $ bin/console $ bin/console cache:clear |
Travailler avec la BD
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# Supprime la BD $ bin/console doctrine:database:drop # Crée la BD $ bin/console doctrine:database:create # Crée les tables $ bin/console doctrine:schema:create # Force la mise à jour du schéma $ bin/console doctrine:schema:update --force # Affiche le SQL $ bin/console doctrine:schema:update --dump-sql |
Charger les données de tests (fixtures)
1 |
$ bin/console doctrine:fixtures:load |
Exécuter une requête SQL
1 |
$ bin/console doctrine:query:sql "select * from nomTable" |
Générer une entité
1 |
$ bin/console doctrine:generate:entity |
Créer une entité Doctrine
Afin d’accélérer votre travail de développeur, il est possible de créer de nouvelles entités Doctrine à partir du terminal. Vous pouvez ainsi définir le nom de la nouvelle entité et spécifier les champs de cette entité. Voici quelques exemples :
Créer une entité en mode interactif avec Doctrine
S’il est parfois difficile de se souvenir de la syntaxe complète pour lancer la création d’une entité en mode no-interactive (section suivante), il est possible d’utiliser le mode interactif. On vous posera les questions utiles afin de créer votre entité.
1 2 3 4 5 6 |
$ bin/console generate:doctrine:entity Welcome to the Doctrine2 entity generator This command helps you generate Doctrine2 entities. First, you need to give the entity name you want to generate. You must use the shortcut notation like AcmeAppBundle:Post. The Entity shortcut name: |
Le nom suivant indique que l’entité sera créée dans le bundle AppBundle :
AcmeAppBundle:Fav
Correspond au dossier /src/Acme/AppBundle/
Entité généré avec Doctrine
Une fois le processus de génération terminé, il est proposé d’inspecter le code PHP généré dans le dossier /src/NomProjet/NomBundle/Entity
Créer une entité en mode no-interactive
Créer l’entité Fav (favorites)
1 2 3 4 5 |
$ bin/console generate:doctrine:entity --no-interaction --entity=AcmeAppBundle:Fav --fields="movieId:integer userId:integer status:integer createdAt:datetime updatedAt:datetime" --format=annotation |
Créer l’entité Like
1 2 3 4 |
$ bin/console generate:doctrine:entity --no-interaction --entity=AcmeAppBundle:Like --fields="movieId:integer userId:integer createdAt:datetime updatedAt:datetime" --format=annotation |
Créer l’entité Questionnaire
1 2 3 4 5 |
$ bin/console generate:doctrine:entity --no-interaction --entity=AcmeAppBundle:Questionnaire --fields="title:string(length=100) body:text" --format=annotation |
1 2 3 |
Entity generation Generating the entity code: OK You can now start using the generated code! |
Définir des relations entre les entitésDoctrine
Doctrine nous offre la possibilité de créer des relation entre les entités. Plusieurs options sont disponibles. Afin d’en savoir plus, il est recommandé de faire un peu de lecture. Voici l’article proposé sur OpenClassRooms: Les relations entre entités avec Doctrine2. Vous y découvrez plusieurs types de relations tels :
Remplir la base de données
L’étape suivante est de mettre en place un système de fixtures. Ces fixtures nous permettrons de remplir la base de données avec des données de test. Donc, définir le contenu de la BD dans un état connu.
Laisser un commentaire
Participez-vous à la discussion?N'hésitez pas à contribuer!