Dois-je utiliser le mappage YAML / XML ou d'annotation dans Doctrine 2?
J'utilise Doctrine 2 comme ORM dans le framework Symfony. À l'aide de l'annotation basée sur la cartographie pour les entités, j'aurais à écrire beaucoup de code (setters et getters, la cartographie de l'information, etc.). À l'aide de YAML/XML je ne vais pas écrire beaucoup, juste la définition de la colonne et des métadonnées. Dans la Doctrine de la documentation, ils utilisent surtout des annotations dans l'exemple avec quelques-uns utilisant YAML ou XML.
Dois-je utiliser YAML/XML ou des annotations?
Pour les annotations, je peux trouver de la documentation pour chaque annotation au http://docs.doctrine-project.org/en/latest/reference/annotations-reference.html. Je ne pouvais pas trouver les équivalents de l'annotation en YAML ou XML; comment puis-je convertir des annotations sur l'équivalent de la YAML/XML expressions?
source d'informationauteur sonam
Vous devez vous connecter pour publier un commentaire.
C'est essentiellement la baisse de la préférence.
C'est ma vision des choses:
Pros des annotations:
Pros de yaml/xml
Si vous modifiez la db soit le domaine, vous avez encore de les maintenir dans une forme ou l'autre, donc il n'y a pas de réel avantage dans n'importe quelle direction à partir de ce point de vue.
À partir d'un point de vue des performances, de la production, vous devriez être à l'aide de la doctrine de la mise en cache à cache les mappages, donc ils sont égaux.
: "Je dois écrire beaucoup de code, les setters et getters, la cartographie de l'information":
Doctrine exige privé/protégé de propriétés, de sorte que vous aurez toujours être écrit getters et setters. Et vous serez encore écrit la cartographie de l'info, juste dans un autre endroit.
Personnellement, j'irais avec des annotations, car il est beaucoup plus facile de trouver des exemples et des infos si vous en avez besoin.
Il y a un inconvénient sur l'utilisation d'Annotations. Depuis qu'ils sont définis dans les commentaires (qui est bizarre), vous ne serez PAS en mesure d'utiliser precompilers (comme Zend Guard) ou certains bytecode de la mise en cache php extensions pour améliorer votre code de la performance (certains de leur bande les commentaires). Parce que l'annotation est la seule norme avec cette technique de dépréciation, je ne recommande PAS de l'utiliser.
Aussi, l'écriture de "fonctionnel" de choses sur les commentaires, c'est juste bizarre.
XML est beaucoup plus bavarde que YAML, mais aussi plus largement connu. Quelques exemples de Documentation de XML sont les plus pauvres parmi toutes les options.
YAML est plus lisible que les autres, mais il s'appuie aussi sur l'espace identation (certaines personnes n'aiment pas). Symfony utilise le format YAML par défaut pour ses configurations, de sorte que beaucoup de gens qui utilisent Symfony choisir d'utiliser le format YAML pour la doctrine de mappages -- ce qui signifie YAML sont des exemples bien documentés et il ya beaucoup de ressources là-bas.
Personnellement, je préfère le format YAML. Je peux générer les entités automatiquement à l'aide de la doctrine schéma outils (sens je n'ai pas à écrire les getters/setters). Je peux aussi utiliser l'precompilers/bytecode options de mise en cache là sans se soucier d'avoir mes commentaires sont supprimés.
Informations supplémentaires:
Si vous utilisez PHP 7.0 ou supérieur, vous ne pouvez pas jamais
opcache.save_comments = 0
sur php.ini si vous êtes à l'aide d'annotations. PHP est un moyen natif de supprimer les commentaires qui VONT BRISER votre application. Guilherme Blanco, l'un de la Doctrine la plus active de spécialistes de la maintenance et le gars qui a développé l'annotation de récupération de classes qui sont utilisées par la plupart des projets (Doctrine, Symfony) s'est prononcé CONTRE commentaire annotations (si vous avez lu tout le fil, vous verrez qu'il est très passionnée par la ce). Il y a également eu quelques une discussion approfondie sur les questions de commentaire annotations sur Redditet la plupart des gens semblaient d'accord que c'est une mauvaise idée.Malgré tout cela, Symfony officiel de meilleures pratiques livre des conseils de personnes à utiliser les Annotations. Ainsi, la plupart des bundles Symfony va probablement utiliser des annotations que leur format de métadonnées.
Je pense que c'est une question de goût, je préfère les annotations.
- Je utiliser l'annotation parce que si vous voulez savoir quelque chose à propos d'un champ de son au-dessus du champ, sinon vous devez ouvrir un nouveau fichier et de recherche, les règles dont vous avez besoin.
Meilleure façon de le comprendre, pour créer les deux cas. Ensuite, vous regardez ce que vous préférez.