2010-08-16 26 views

Répondre

1

Ce n'est pas comment la doctrine fonctionne et que Kuba a écrit la fonction a été supprimée de la doctrine (il y avait des raisons de le faire). La version stable actuelle repose fortement sur les fonctions magiques. Accéder aux champs via les getters magiques et les setters comme le fait Doctrine ne coûte pas beaucoup de temps. Il y a d'autres parties de la doctrine qui prennent beaucoup plus de temps. Donc, si vous avez des problèmes de performance avec la doctrine, vous devriez "attaquer" ce "problème" en utilisant les résultats du tableau pour votre requête (c'est-à-dire fetchArray au lieu de execute). Cela économise beaucoup de temps et de mémoire. Si vous avez besoin d'objets, vous pouvez hydrater les données du tableau vers un objet si nécessaire.

La création de getter et setter est une sorte de micro-optimisation qui peut vous causer beaucoup de problèmes. Si j'étais vous je continuerais la voie standard de Doctrine.

+0

J'ai juste profilé la manière "magique" d'accéder aux données des objets. et cela coûte BEAUCOUP de temps - si vous appelez autour de 120000 getter. – mosch

+2

Dans ce cas, utilisez l'extraction de tableau si vous devez utiliser cette quantité de données. – Timo