2010-03-22 8 views

Répondre

4

Cela dépend de la façon dont vous avez conçu votre application.

À l'exception d'ActiveRecord, ZF fournit des implémentations pour trois des quatre Data Source Architectural patterns in PoEAA. Si les objets de votre modèle correspondent très étroitement à la structure de votre base de données, les composants ZF peuvent être suffisants pour votre application.

Si vos objets sont mappés sur/agrégés à partir de plusieurs tables, un DataMapper personnalisé au-dessus des classes DB ZF ou un ORM complet, comme Doctine ou Propel pourrait être mieux adapté. Vous seul pouvez décider cela.

+0

Merci Les gars pour partager vos connaissances et opinions -DevD – user274383

1

Je recommande:

  1. Doctrine 2.0 - multi-plateforme, la facilité d'utilisation, de bonnes performances, une bonne documentation, support des espaces de noms, powerfull, ce sera peut-être une partie de 2.0 ZF
  2. Doctrine 1.2 - croix, plate-forme, la facilité d'utilisation, facile à mettre en œuvre, des extensions utiles (par exemple NestedSet, tagable, commentable), une bonne documentation, travaille avec ZF autochargeur, outil CLI, YAML, jeux de données
+0

Doctrine 2.0 est toujours en phase alpha – Gordon

2

Une pleine part entière ORM pourrait fournir également des fonctionnalités supplémentaires utiles ul pour vous. Certains pourraient aimer DQL comme utilisé dans Doctrine, d'autres voudraient peut-être éviter d'écrire des requêtes à la main pour récupérer des objets, et pourraient préférer des interfaces fluides comme l'API ModelCriteria Query dans la prochaine version de Propel 1.5.

Donc, fondamentalement, tout dépend de vos propres besoins, il n'y a pas de "meilleure solution" qui convient à tous les projets.

+0

Je suis d'accord. Personnellement, je veux les méthodes getter et setter concrètes que Propel fournit. Les méthodes getter/setter «virtuelles» de Doctrine ne conviennent tout simplement pas à mon style préféré. Je suppose que c'est ce que j'ai pour travailler avec les gars de Java pendant un moment;) –