Je suis passé à l'utilisation de symfony2.0 pour développer le projet et j'aimerais poser quelques questions.
某草草
某草草 2017-05-16 16:46:03
0
1
514

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 !

某草草
某草草

répondre à tous(1)
刘奇

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 :

.
  1. Doctrine est le mode Data Mapper + Proxy, et Propel est le mode Active Record (c'est une question philosophique
  2. ) ;
  3. La communauté de Doctrine est plus active
  4. Symfony 2 utilise la bibliothèque Common de Doctrine pour implémenter l'injection de dépendances (DI) basée sur les annotations
  5.  ;
  6. Doctrine est plus moderne (2.x) et offre une meilleure prise en charge des fonctionnalités pour PHP 5.3+, mais Propel rattrape également son retard.

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal