Maison > Questions et réponses > le corps du texte
J'avais l'habitude d'utiliser symfony1.4+propel pour développer des projets, et maintenant je passe à symfony2.0, mais je n'ai jamais utilisé doctrine, mais la valeur par défaut officielle est doctrine et supprime propel.
1. Quels sont les avantages d’utiliser la doctrine ? Par rapport à la prop. Les projets sont des aspects systémiques.
2. Lors de l'utilisation de prop, j'ai trouvé que group by n'était pas très utile, n'est-ce pas ?
3.Comment la doctrine gère-t-elle la relation plusieurs-à-plusieurs M:N ?
De plus, je poste d'éventuels problèmes avec la doctrine, et je fais référence à d'autres :
1. Erreur de documentation. Utilisez les options pour configurer des options de champ supplémentaires, telles que les attributs non signés et par défaut et le yml généré sont spécifiés directement sur le champ.
2. Les clés étrangères ne peuvent pas spécifier non signées ou par défaut
3. La relation de table est une relation non identificatoire
Merci !
怪我咯2017-05-16 16:48:03
Les fonctions prises en charge par la doctrine "standard" sont un ensemble de fonctions prises en charge par toutes les bases de données relationnelles (MySQL, PostgrelSql, etc.) prises en charge par PDO. En d'autres termes, tout ce que A prend en charge mais que B ne prend pas en charge ne sera pas pris en charge. par Doctrine par défaut. Oui, mais Doctrine a une bonne évolutivité et un code tiers riche. Je ne sais pas comment le rechercher sur Baidu. Si je recherche Doctrine+Extensions sur Google, j'y gagnerai beaucoup.
Le support plusieurs-à-plusieurs de Doctrine est plutôt bon et suffisant.
Vous pouvez toujours utiliser Propel dans Symfony 2, il y a un chapitre dédié dans la documentation du site officiel.
Doctrine et Propel sont tous les deux bons (vous pouvez écrire le package de base de données vous-même, ou vous pouvez être un bon camarade). Si vous devez comparer, vous pouvez citer quelques différences objectives :
.Comme mentionné ci-dessus, la fonctionnalité non signée que vous avez mentionnée ne peut pas être utilisée dans les bases de données, elle n'est donc naturellement pas prise en charge par défaut. Cependant, si nécessaire, il existe de nombreuses façons de le faire, je n'entrerai donc pas dans cette réponse.
Default n'est pas un attribut qui peut traverser des bases de données, mais vous pouvez simplement définir une valeur par défaut pour les variables membres mappées dans la classe Entity de Doctrine. Que puis-je demander de plus ?
La promesse de Doctrine est qu'elle peut être utilisée dans toutes les bibliothèques. Je pense qu'un bon code ne fait que ce qu'il promet. De ce point de vue, Doctrine peut toujours mettre les gens à l'aise. Après tout, de nombreuses personnes utilisent encore PostgreSql ou SQLite, alors n'utilisez pas la réflexion MySQL pour forcer la cohérence.