2010-09-20 3 views
3

Le framework que je commence à apprendre prend en charge 2 ORM prêts à l'emploi. Je ne pense pas qu'il soit important, aux fins de cette question, de dire quels 2 ORM. Ma question est plus générale que cela. Comment décidez-vous généralement quel ORM accompagner? Je n'ai jamais utilisé d'ORM auparavant, mais je suppose qu'il y a une liste de must-have que tout ORM décent doit avoir, puis il y a une liste de choses à faire et ainsi de suite. Un ORM est comme n'importe quel autre progiciel.Comment choisir un ORM

+4

Si dire "quels 2 ORMs" n'est pas important, pourquoi mettre "symfony" et "doctrine" dans les tags pour cette question? : D –

Répondre

4

Vous aurez besoin de comparer plusieurs choses, ce n'est pas tout à propos de ce qu'il peut et ne peut pas. Pensons à:

  • Caractéristiques
  • Documentation
  • progrès du développement
  • Vitesse
  • Comment est le code
  • Communauté
  • soutien

Vos priorités peuvent être différentes que la mienne. Avez-vous besoin d'un produit stable à l'épreuve de la production? Ou voulez-vous quelque chose de plus avant-gardiste?

+0

Tranchant: dernières techniques. Le meilleur ORM fera tout ce que vous voulez. Si vous trouvez un tel ORM, allez-y. Si vous ne le faites pas, vous devrez faire un choix. Pour que le choix soit correct, vous devrez vous poser des questions sur vos besoins. – user228395

+0

L'avant-garde peut être: l'utilisation complète de php 5.3, les derniers paradigmes de conception oop (quel type d'héritage cela vous donne-t-il), les standards, l'intégration avec les frameworks. Doctrine2 a mis en place des techniques de pointe. – user228395

3

La première question devrait être de savoir si votre application nécessite un ORM, et non les fonctionnalités fournies par l'ORM. Si votre application nécessite un ORM, choisissez celui qui convient à votre application, et non celui qui est le plus riche en fonctionnalités. Si vous ne croyez pas en ActiveRecord, vous ne choisissez pas l'ORM basé sur ce modèle, indépendamment des fonctionnalités.

Pour un aperçu des modèles objet-relationnel un coup d'oeil à la PoEAA de Fowler:

Une ORM mise en œuvre la plupart des modèles d'objet-relationnel pourrait provisoirement être considéré comme décent, mais comme J'ai dit, si tu n'en as pas besoin, tu n'en as pas besoin.

+0

Donc, un seul ORM peut en fait accueillir plus d'un modèle de conception de base de données (ActiveRecord et autre)? – jblue

+0

@jblue En théorie, oui. En pratique, AR est le modèle dominant ([bien qu'il craint pour ORM] (http://kore-nordmann.de/blog/why_active_record_sucks.html)). – Gordon

+0

Vous semblez très compétent dans ce domaine, alors j'aimerais vous poser une question connexe. J'ai demandé à propos de l'utilisation d'une couche de service avec MVC ici: 'http: // stackoverflow.com/questions/3744402/is-mvc-service-couche-commun-en-zend-or-php' Ma question est la suivante: faire un peu Les patterns de conception db se prêtent plus à une couche de service sur le modèle? – jblue

Questions connexes