Bonjour à tous,
Je n'arrive pas à comprendre quel est l'utilité de la MappedSuperClass de Doctrine. Quand on lit la doc, on lit notamment :
A mapped superclass cannot be an entity, it is not query-able and persistent relationships defined by a mapped superclass must be unidirectional (with an owning side only). This means that One-To-Many associations are not possible on a mapped superclass at all. Furthermore Many-To-Many associations are only possible if the mapped superclass is only used in exactly one entity at the moment. For further support of inheritance, the single or joined table inheritance features have to be used.
Personnellement, je me dis :
Pourquoi toutes ces restrictions alors qu'un simple héritage de classe retourne la même chose niveau PHP, produit le même SQL et s'utilise de la même manière au niveau du QueryBuilder ? J'imagine qu'il doit y avoir des avantages de performance, mais la Doc n'en parle pas.
Bien sûr, je ne peux pas non plus me servir des Single/Class Table Inhreritance, du fait de cette relation 1,N bidirectionnelle que j'ai dans ma classe abstraite et qui causerait des problèmes de performance ("If the target-entity of a many-to-one or one-to-one association is a CTI entity, it is preferable for performance reasons that it be a leaf entity in the inheritance hierarchy, (ie. have no subclasses). Otherwise Doctrine CANNOT create proxy instances of this entity and will ALWAYS load the entity eagerly.")
Du coup, je compte me diriger vers l'héritage, et tant pis pour Doctrine… Est-ce que vous avez des idées ?