I agree -- this is the main problem with Propel. I'm very curious to see what you guys come up with. Note that before starting Propel I actually spent a long time considering a port of Hibernate to PHP5. I finally decided that Hibernate just didn't fit into the PHP stateless model, but you may find a workaround. I opted for a tool with a build phase as a workaround, and chose Torque as the basis for Propel.Quote:
Originally Posted by MiiJaySung
Here's some history: http://propel.phpdb.org/wiki/index.php?node=41
Note that the reason why Propel handles things like complex SQL needs and many-to-many relationships so poorly is primarily due to the fact that it does not use runtime metadata lookups (or very minimal). Propel is fairly optimized code and while I think performance is good, it tends to push the limits of PHP :) Not everyone thinks Propel is fast enough for their large-scale applications. I can only imagine that if you start parsing HQL at runtime and performing metadata queries you are going to have some serious performance stuff to deal with. ... which I assume (without having read this whole thread) will lead to caching & other technologies that quickly start leaving the scope of "object persistence layer".
Anyway, I'm very keen to see the outcome of this discussion. In my mind it would also be great to find a way to work together (e.g. Propel 2 is going to have some more hibernate-like features in terms of a looser mapping to SQL tables).