Depuis la PR7 la méthode de génération des entities depuis des fichiers annotation a changé dans Symfony2 (pas vérifié dans doctrine, pas non plus fait d'introspection pour savoir où la modification à été faîte).
Avant on créait une classe du nom de l'entité à générer. Puis on appliquait un "doctrine:generate:entities "XxxxxxBundle"" pour générer les geter dans la classe.
Maintenant, ceci n'est plus possible. A priori (je n'ai pas tout testé mais je pense ne pas être trop à côté) il y a deux approches.
Approche "pure et dure". Écriture intégral de la classe de l'entity ce qui permet de faire ce que l'on veut (mais les getters sont à ce payer à la main).
Approche "plutôt douce". Il faut passer par la création d'un fichier "~MonEntity.php" et y définir les propriétés de l'objet à générer et les annotations qui vont avec. Aucun code de geter. Ensuite la commande "doctrine:generate:entities " permet de créer les MonEntity.php qui correspondent avec les geter qui vont bien. En fait, cette méthode ressemble furieusement à la méthode par un fichier yml.
Ce qui me pose un problème de structure des objets. Vu que la deuxième méthode me semble plus appropriées mais qu'elle ne permet pas de faire des geter particulier notamment pour des champs de style (et pas de type) enum. Et les classe particulière pour la gestion des droits.
Il manque un niveau d'objet entre la classe de base auto générée et la classe utilisée. Un peu comme dans symfony 1 avec les classes BaseXxxx et la classe utilisée Xxxx.
A voir si la classe repository peut être utilisée dans cet optique ?
A voir comment il est maintenant possible de créer des classes entity elle même fille de...
Partager