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 ...