Propel 1.6.0 stable is there. It’s full of new features, robust, and still fast as hell. It’s the best Propel ever. If you’ve been waiting for happiness in the ORM world, if you want web development to be fun, and if you prefer to let the computer do all the heavy duty stuff for you, you’ve got to try this new release.
Propel 1.6.0 is backwards compatible with Propel 1.4 and 1.5. It means there is no upgrade costs, just benefits. As a consequence, the 1.5 branch is no longer maintained. Switch to 1.6 to get the latest bug fixes, in addition to the new features!
And boy, those new features will ease your life a lot. The extensive list is too long to be copied in this blog post, and the Propel online guide provides extensive documentation about all of theses new features already. So here is a glimpse of what’s new in the 1.6 release:
insert-sqlcalls that erase your whole database, no more manual
ALTER TABLEstatements. Propel migrations detect modifications in your XML schemas, and generate the SQL code to migrate the table structure, while preserving existing data. Propel also generates the SQL to rollback the migration in case of problem. Even better, Propel generates a PHP migration class, that you can put under version control, and where you can add data migration code. Migrations are dead easy to use, use vendor-specific SQL, and work even for existing projects.
orWhere(), and the inability to use generated filters when a query uses an OR. Propel 1.6 introduces the
ModelCriteria::_or()method, and simplifies the writing of queries that used to be more complex in Propel 1.5.
buildtime-conf.xmlconfiguration file, using the same syntax as the
runtime-conf.xmlfile, to allow several database connections at buildtime. So a project mixing MySQL and Oracle persistences won’t have issues with the generated code anymore.
ModelCriteria::addSelectQuery()method makes it easy to use a first query as the source for the SELECT part of a second query. This allows to solve complex cases that a single query can’t solve, or to optimize slow queries with several joins.
StandardEnglishPluralizer, which should take care of most of the irregular plural forms of your domain class names.
There are a thousand more code changes, smaller additions, backwards compatible tweaks and optimizations. All inspired by usage and real life projects. All designed to simplify your web development. All fully unit tested and already documented, as usual.
Used together with the Symfony framework, Propel feels even more powerful and easy to use. All the initial configuration and setup phases are taken care of by the framework, and the Symfony Command Line Tools is an improvement on Propel’s native buildtime script.
Niklas, tuebernickel, thadin, lvanderree, Crafty_Shadow, ardell, ddalmais, rozwell, oschonrock, Richtermeister, Joss, fonsinchen, paul.hanssen, lathspell, poisson, couac, vmakinen, KRavEN, in no particular order, all contributed code to the 1.6 release. There are many more who tested beta releases, opened tickets on the Propel Trac, or proofread the documentation. And even more who blogged about the new features even though the release wasn’t stable yet.
All these people show how much Propel is a community project. Thanks to all of them for their work. Without their help, Propel 1.6 wouldn’t be there today.
I also want to thank all the brave Propel users who answered questions on the Propel mailing-list and on the #Propel IRC channel. Newcomers and beta testers found a welcoming community, and that’s half of what people ask of a good Open-Source project.
Again, Propel 1.6 is backwards compatible with Propel 1.4 and 1.5. All you need to do to upgrade an existing project is to update your Propel version, and rebuild your project. The Propel library is available in all the usual formats:
> svn checkout http://svn.propelorm.org/tags/1.6.0
> git clone git://github.com/Xosofox/propel.git
> sudo pear upgrade propel/propel_generator > sudo pear upgrade propel/propel_runtime
Propel still leverages code generation to provide a fast, professional, user- and IDE-friendly ORM to PHP. The Propel project is very much alive, and you’re going to love building applications with the new 1.6 release.
But Propel 1.6 took more than a year to complete. During this time, there was not much to talk about, so Propel needs some publicity. Don’t hesitate to leave your feedback as comments, tickets, or emails to the Propel mailing-lists.
And if you use Propel 1.6 and like it, please share your experience with your friends.
Found a typo ? Something is wrong in this documentation ? Just fork and edit it !