Bonjour,
Je me tourne vers la communauté sur un point d'organisation d'un bundle. Au cours de mes travaux sur Symfony2, je me suis créé un bundle qui rassemble tout ce qu'il faut pour créer un carnet d'adresses. Ce bundle embarque comme vous pouvez l'imaginer un ensemble d'entités : des contacts, des adresses, etc.
Mon objectif était de le rendre complétement indépendant afin de l'utiliser dans n'importe quel projet Symfony2 et j'en ai fait un "vendor". Comme ça un petit composer require et hop, il est installé.
Actuellement, après avoir lancé la commande de mise à jour du schema avec Doctrine (doctrine:schema:update) j'installe toutes les entités. Cependant, je me pose la question suivante : est-ce qu'il est préférable de garder la persistance des entités dans mon bundle "vendor" ou de déporter la persistance des ces dernières dans un bundle spécifique au projet Symfony dans lequel il est installé ?
FOSUserBundle par exemple n'embarque que des mapped-superclass, la persistance de l'entité User se faisant dans un bundle héritant de ce dernier. Le truc c'est que mon bundle comporte des entités qui sont beaucoup plus liées entre elles qu'une simple entité dans son coin. De plus les mapped-superclass ne peuvent comporter que des relations many-to-many alors que mes entités on d'autres types de relations. Ce qui veut dire pour moi que les fichiers mapped-superclass ne serait que d'une utilité limitée (ne pouvant comporter qu'une petite partie de la définition de mes entités). Il faudrait donc déporter toutes les entités dans le bundle héritant de mon "vendor" à chaque fois que je l'utilise. Quelles sont les bonnes pratiques en la matière ?
Merci d'avance de vos retours.
Partager