Sommaire

Le Reverse EngineeringReverse Engineering

Il se peut que vous entamiez Symfony avec une base de données déjà existante. C’est souvent le cas en entreprise. Si votre base contient beaucoup de tables, il sera assez fastidieux de créer à la main toutes les entités correspondantes dans votre application.

Symfony vous donne la possibilité de créer toutes les entités automatiquement à partir de la base de données.

Sur le terminal, lancez la commande :

php bin/console doctrine:mapping:import "App\Entity" annotation 
--path=src/Entity/Reverse

Dans le dossier src/Entity, vous trouverez un dossier Reverse qui contiendra toutes les entités générées.

Si vous ouvrez l’entité Produit, vous verrez que les jointures ont été détectées. Il y a bien un ManyToMany sur la propriété $distributeur.

Par contre, Symfony a fait une jointure ManyToOne (par défaut) sur la propriété $reference. En effet, il n’y a rien qui différencie un ManyToOne d’un OneToOne dans la structure des tables. À vous de faire les corrections manuellement.

Il ne vous reste plus qu’à générer les accesseurs avec la commande :

php bin/console make:entity --regenerate App

Attention : supprimez le dossier Reverse et son contenu pour la suite. Si vous ne le faites pas, vous aurez des conflits entre les entités du dossier Reverse et les entités du même ...