Mi elección personal es Doctrina 2 por varias razones:
Conceptualmente, es muy fácil de entender. Trabajar con entidades y el administrador de la entidad es simple. Me encanta cómo las entidades no necesitan extender ninguna clase de modelo base (como en Doctrine 1).
Es tipo de el ORM estándar para Symfony2 en este momento. Si bien Symfony2 no lo respalda oficialmente, es lo que la mayoría de la gente está usando y, por lo tanto, existe una gran cantidad de información en línea. El valor de esto es tremendo.
usted menciona que usted ha escuchado "cosas malas sobre Doctrine2" - es importante que se den cuenta sin ORM va a ser perfecto. Me he encontrado con algunos problemas, pero siempre que pienses de forma creativa, puedes encontrar una solución. A veces esa solución significa escribir SQL sin formato, sin importar lo que puedan decir los puristas de ORM. No me he encontrado en ninguna situación en la que lamentara usar Doctrine 2.
Pasé mucho tiempo mirando a Propel, pero simplemente no me gustó cómo funcionó. Eso no quiere decir que es una biblioteca mal programada, pero para mí personalmente no era una buena opción. Pero dado que cada desarrollador es diferente, el mejor consejo que puedo ofrecer es que consulte los ejemplos de documentación y uso para ambas bibliotecas. Como usted va a usarlo, y no nosotros, debe elegir la biblioteca de la que cree que se beneficiará más.
Recuerdo cuando aprendí s1, vi algunas alternativas enumeradas en los tuts, y adopté un par. Lo lamento, b/c si la comunidad usa, p. Doctrine, todos los ejemplos de blog y comentarios SO girarán en torno a Doctrine. Así que incluso si Propel fuera más adecuado (no lo sé), D sigue siendo una mejor opción pragmática. – yitznewton