# ORM

# Doctrine

Doctrine est l'ORM utilisé, vous avez à votre disposition les entités dans le dossier app/src/Entity et accès à l'EntityManager depuis les controllers avec $this->em;.

Voici la commande doctrine que vous aurez besoin pour déclarer vos entités en base (Vérifiez avoir bien créé votre base de données au préalable):

Linux et MacOs

$ php vendor/bin/doctrine orm:schema-tool:update

Windows

$ php vendor/doctrine/orm/bin/doctrine.php orm:schema-tool:update

A coté de vos entités vous avez les repository, il s'agit des classes ou vous allez écrire les requêtes doctrine en utilisant son QueryBuilder (opens new window) par exemple.

Pour plus d'infos sur l'ORM, je vous invite à aller voir la documentation officiel (opens new window).

# Fixtures

Vous pouvez envoyer des données prédéfini en base de données avec data-fixtures (opens new window), créez vos fixtures dans le dossier app/src/Entity/DataFixtures puis lancez la commande :

$ php console data:fixtures

Attention, cette commande purge la base de données pour ensuite envoyer toutes les fixtures de dossier app/src/Entity/DataFixtures, pour envoyer une fixture spécifique sans pruger la base, lancer la commande :

$ php console data:fixture <VotreFixture>

# Migrations

Vous pouvez générer et écrire des migrations pour la gestion des mises à jour de votre base de données. Contrairement à la commande php vendor/bin/doctrine orm:schema-tool:update qui execute le changement de la base en se basant uniquement des entités, les migrations permet de gérer les niveaux de mise à jour fichier par fichier pour une meilleur sécurité de vos mises à jour d'un projet.

Vous avez a disposition les commandes et les exemples de migrations depuis la documentation officiel (opens new window).