Would You Like To Play With Propel 1.5?

The release date of Propel 1.5 is a couple months ahead, but since this new version offers only backwards compatible enhancements, you can play with it in your existing applications, or start developing new applications with it, right now.

The 1.5 branch is very stable, and passes all the 928 unit tests of Propel 1.4 - plus 891 new tests added just for the 1.5 additional features. That's right, Propel 1.5 has nearly doubled the total number of unit tests from Propel 1.4 ; and if you remember correctly, Propel 1.4 already had twice as many unit tests as Propel 1.3.

There are three killer features in Propel 1.5 that you may want to use right away:

 - New Query API
 - Nested set behavior
 - Sortable behavior

Propel 1.5 doesn't offer a PEAR package for now, but a Subversion checkout will do the trick:

  > svn checkout http://svn.phpdb.org/propel/branches/1.5

Alternatively, symfony users can benefit from the brand new sfPropel15Plugin, which is a drop-in replacement for the core sfPropelPlugin in applications using symfony 1.3 or 1.4.

Feedback is welcome on the stability and usability of the new features. As always, the Propel Trac ticketing is your best friend to mention bugs or request features.

Posted by Francois Zaninotto 

11 comments

Dec 17, 2009
Gustavo García said...
Hi!
It sounds so cool! I will upgrade my sfPropelPlugin right now.
By the way, I found two typo errors, I just opened a new ticket for that.

Best,
Gustavo G.

Dec 21, 2009
davert said...
Thanks for a new life of Propel. You are doing a great job!

That's bad that you have break up with symfony core team. You had great ideas and plugins. Especially DbFInder that is a part of a Propel now :)

Dec 22, 2009
Nick said...
Any chance of making a Symfony plugin that adds backwards compatibility to the DbFinderPlugin? We've got a few Symfony projects utilising DbFinder and we'd like to integrate Propel 1.4/1.5, but they're not exactly backwards compatible with 1.3 since there's no more MapBuilder (which DbFinder requires).
Dec 22, 2009
Nick, I´ll update the DbFinder plugin once Propel 1.5 is out - which is not far from now.
Dec 22, 2009
Nick said...
Many thanks Francois.
Dec 29, 2009
Lukas said...
I would recommend to rather focus on a materialized path plugin before offering nested set. Its much more versatile and less risky.
Dec 29, 2009
@Lukas: How is nested sets risky? I don't see your point. Also, there is nothing to do before offering nested sets: they are already there!
Dec 29, 2009
Lukas said...
Sorry for my nebulous comment.

Nested set have horrible write performance. So thats one "risk". Another "risk" is that its entirely a black box thing. The number are meaningless in logs. Its impossible to hand edit the tree. Etc. So you are putting yourself at the mercy of the API. Which is of course all fine if your UI does everything you need, your application always works perfectly, there are no bugs in Propel and your site never needs to scale to handle lots of writes on your tree structure.

Anyways I have seen this in Doctrine too. Lots of people adopting nestedset not knowing what they are getting themselves into.

Dec 30, 2009
But MaterializedPath works on string columns with a 'LIKE' operator, which leads to horrible read performance in large trees. And some MaterializedPath method implementations are quite 'black box', too (think about moving a subtree).

That being said, a materialized path behavior for Propel would be great, but we'll have to make a choice, since there are already a lot of behaviors waiting to be implemented...
Dec 30, 2009
Lukas said...
From my experience "horrible" read performance is rarely the case (as long as one does not reach the length limits for indexes in some RDBMS), but again unless your data is read only (or very small) nested set does not offer a realistic tradeoff, where materialized path does.

As for being black box, I humbly disagree. Any (manipulation) query on materialized path are totally readable and even hand writeable.

The fact that you mention other behaviors that might have priority over materialized path is exactly the reason why I mentioned that materialized path should have priority over nested set. But anyways, I am not a Propel user and so I should probably better spend my time adding materialized path to Doctrine :)

Jan 14, 2010
Tom said...
Very nice, great improvements...

Leave a comment...