3 ms·
Every ORM I've ever used in PHP is junk aside from Doctrine. And Doctrine is only good if you commit fully to it. Tho that's true for most ORM's (I'm looking at
by encoderer 15y ago
Every ORM I've ever used in PHP is junk aside from Doctrine. And Doctrine is only good if you commit fully to it. Tho that's true for most ORM's (I'm looking at you LINQ, you too, Active Record).
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.
- apinstein 15y agoWhat's so bad about the PHP ORMs? I am curious. I know Propel has improved significantly, and Doctrine 2 as well. Do you have any specific complaints?
- SolarUpNote 15y agoPropel is completely different as of 1.6. It doesn't really use the "Criteria" objects any more. (which is probably what they're referring to) 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.
- encoderer 15y agoThere are too many unimpressive ORM projects. There's a hundred PHP frameworks and half of them decide to roll their own ORM rather than use and contribute to an existing project. 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.