Bonjour,
Actuellement j'étudie Doctrine 2 car je souhaite l'utiliser pour un projet complexe ayant besoin d'un ORM basé sur un Data Mapper.
J'aimerais recueillir les avis des utilisateurs de Doctrine 2 sur le choix du "Mapping Driver" car il y a un élément qui me gêne un peu.
Je vois un peu partout que le driver "Docblock Annotations" est très plébiscité : il est mis en avant dans la doc de Doctrine 2, et beaucoup de développeurs semblent ne jurer que par lui.
Pour ma part, il me pose quand même quelques problèmes...
Le premier, et le moindre, c'est qu'il a tendance à envahir un peu les commentaires. Une entité un peu conséquente risque de devenir difficilement lisible si chacune de ses nombreuses propriétés se voit "décorée" d'un gros bloc de commentaire en plus du docblock déjà existant.
Le second, qui à mon avis est beaucoup plus grave, est que j'y vois un début de couplage entre le modèle métier et la couche de données, ce qu'un Data Mapper est sensé éviter à l'origine.
On est d'accord, ce sont juste des commentaires, mais il n'empêche que l'on insère une logique de mapping à l'intérieur même des objets métiers. Si jamais plus tard on veut changer d'ORM, cela implique donc de retoucher les objets métiers, même si c'est juste sur le plan "esthétique".
L'avantage par contre c'est de limiter les "oublis" de mise à jour de la configuration du mapping, car il est plus facile d'oublier une modif dans un fichier extérieur.
Avant de risquer l'implosion face à tant de questions existentielles, je m'en remet à vos avis : quels sont vos retours d'expérience sur le sujet ? Que préférez-vous utiliser comme Mapping Driver en règle générale ?
Partager