Salut !
J’ai parcouru avec attention votre tutoriel, et voici mes retours.
Après avoir fait les diagrammes de classes en UML, il est facile de générer toutes les entités nécessaires en ligne de commande. Le chemin inverse est tout aussi facile. C’est exactement ce que je vous propose de voir ici.
Le chemin inverse de "générer toutes les entités [depuis le diagramme UML]", c’est de créer le diagramme de classes UML depuis les entités, à mon sens, mais je ne crois pas que ce soit ce que vous faites ni ce que vous voulez dire.
Et ne pas confondre une représentation des tables avec un diagramme de classes UML, ce n’est pas la même chose (il suffit de penser aux tables intermédiaires dans les ManyToMany).
Nous ne créerons pas l’interface utilisateur dans ce tutoriel. Ici, nous ne travaillerons que la BDD.
Oui et non, les entités ne sont pas la BDD, même si elles y sont fortement liées il est vrai. Je pense qu’il faudrait reformuler ça, l’idée étant que Symfony est un framework MVC, on va ici s’occuper que de la partie M[odèle].
Voici sans tarder le code SQL que je vous propose :
Je le relève dans cette phrase, mais vous êtes deux auteurs, ça fait donc bizarre de voir un "je".
Génération d’un bundle pour la gestion modèle
[…] la gestion des modèles
Pour la partie "Création des entités depuis la BDD", je suis relativement surpris.
Dans l’ordre, vous :
- donnez la commande pour exporter directement au format annotation ;
- parlez des autres formats qui nécessitent l’utilisation de
doctrine:generate:entities
comme "une étape supplémentaire"…
- … étape que vous devez ensuite utiliser quand vous voyez que les entités générées avec annotations n’ont pas les getters et setters…
- … en repassant par un autre format de mapping.
Bref, j’espère que vous comprenez à quel point j’ai voulu vous rendre service…
Non.
Donnez directement la marche à suivre correcte et efficace, puis expliquez le cas particulier, ce sera plus simple et compréhensible à mon avis.
Je suis aussi surpris qu’il faille passer par un autre format quand on souhaite avoir les entités sous forme d’annotations. Est-ce que c’est vraiment nécessaire ? Est-ce que ce n’est pas simplement un souci de cache qui fait que les entités ne sont pas immédiatement reconnues ? Dans ce cas, pourquoi ne pas simplement utiliser un cache:clear
?
Dernier point : il n’est actuellement pas fait mention que certaines relations "complexes" pourront ne pas être reconnues correctement, ni que (du moins dans mon souvenir datant de Doctrine 2.4) les relations ne sont pas automatiquement bi-directionnelles, et donc demandent une reprise "manuelle" des entités et le cas échéant des mappings. Je pense qu’il est nécessaire de préciser que cela fournit des entités "de base" dans des cas simples, mais qu’il faut bien faire attention avant de se reposer sur ce qui a été généré de cette manière.