Of course, I have been previously exposed to Django and its kick-ass ORM and to DBIx::Class from Perl, so my standards were pretty high.
Of course, I have been previously exposed to Django and its kick-ass ORM and to DBIx::Class from Perl, so my standards were pretty high.
The only other acceptable option IMO (in phpland) is the frameworks that implement such a thin and light ORM that it helps you with redundancies without enslaving you to their verbosity and tortured syntax. (Kohana, for example).
But yes, Symfony in particular, using Propel ORM, is hideous.
Edit: I suppose I didn't "bless" somebodies favorite ORM so clipped a downvote. You could just give a counterpoint instead. And really, I did forget about ZendDb, which wasn't all that bad but I never really used it much.
It's much simpler now:
articles = ArticleQuery->where(column = ?, val)->groupBy(column)->limit(10)->find()
I like it, but it's still very resource-heavy.
So you're left with a lot of unsophisticated systems.
Doctrine (PHP), DataMapper (Ruby), SqlAlchemy (Python), LiNQ (.Net), Hibernate (Java). I've used all of these a great deal (except Hibernate, I've not done all that much Java).
All of these projects are sophisticated, complex, impressive. Propel? CakePHP ORM? Or just search php orm -doctrine -propel and look at the 3 dozen results.
These are junk. I'll stand by that assertion. Not because they're PHP, but because they were started often as a part of a larger framework without any respect paid to the fact that an ORM is a very very hard problem to solve.