Propel2 has begun!

Hi there,

Yesterday we held an IRC meeting to talk about the future of Propel. We focused on the next major evolution, named Propel2 to emphasize on the internal refactoring, and because we want to be free to break backward compatibility to get things right.

Hey! Propel2 ? What's new about it ? Will I have to learn it all again ? Don't worry, current Query and Active record API are safe, this is the reason Propel is so great so be sure it will be for long.
And, contrary to what was announced here, Propel2 won't be built on top of Doctrine2. I'll let you read the IRC transcript below to know why.
 
Actually, Propel2 will be based on the 1.6.3 version. To make it up to date with today's standards, the buildtime and runtime classes will use namespaces. That will open the door for a new autoloader (probably the Symfony2 ClassLoader Component). That means Propel2 will run on PHP version > 5.3. We'll add new exceptions to be more explicit (there are only two named exceptions for now). We'll remove the current Phing dependency for command line tasks and replace with another, more modern Command line component (probably the Symfony2 Console component). We'll get rid of the Peer classes; to unclutter your model directories. We also discussed about the logging part and Monolog will probably be used. To ease the communication with more RDBMS we'll introduce adapters instead of extending PDO for connections. And the last part was about builders: today we use PHP scripts to build PHP classes, and it's a pain ; we proposed to use Twig instead and it was accepted by the community - like all other points.

That means the upcoming Propel 1.6.3 version is the last version on the 1.x branch. We'll just maintain it by merging bugfixes. Propel 1.6 is full-featured, stable, and used since a long time by a lot of people. We recently improved its speed and provided an API to deal with collections.

The development of Propel2 will be held on GitHub, you'll find the roadmap here and any help is welcome. If you want to contribute on this huge refactoring, just come and give a hand :)

Posted by William DURAND 

11 comments

Oct 06, 2011
David said...
Great news all the way! Not quite sure yet what the implications of removing the peer classes will be, but well, one can always add static methods to the query classes ;-)
Oct 06, 2011
@David: or the ActiveRecord classes as well.
Oct 06, 2011
cedric lombardot said...
@william tell me if i can Help you for some features
Oct 06, 2011
Rafał Filipek said...
@Francois Zaninotto
"francois > Damn, rafal_filipek just left, too ;)" .
Don't worry :) I'll write to you soon about those performance problems that I meet in Doctrine2.
Oct 07, 2011
It's nice to hear about propel2. I think i understand why You want to use Twig. Template system could be very helpful,
But i'm concerned about Symfony 2 component. I don't use it and i think that i don't want to use it. If something will be used from S2, then i must download whole or part of S2 to my project ?
Still using xml to write scheme ? and about behaviors, are they still in or new system of some sort of plugin/extension ?
Oct 07, 2011
William DURAND said...
@Tomasz : don't worry, Propel2 will be bundled with 2 Sf2 components available as standalone components so there won't be any problems, you won't download the whole Sf2 project.
About your two other points (XML & behaviors), no plan to change them :) Propel2 is more or less a big refactoring based on 1.6.x.
Oct 07, 2011
Frosty said...
Glad to see that Propel is more alive than ever :)

However I just have a comment : I don't find that having "Propel2" as a single word like "Doctrine2" "Symfony2" etc. is a good thing.

"<projectname>2" as a project name, mixes in a single term the project name and a part of the version number. I've the subtle feeling that something is "hardcoded" here. How future minor versions for Propel will be written ? "Propel2 2.1 ?"...

Moreover, this change apparently harmless may have serious implications on SEO, when Googling for Docs, Tutorials, forum threads, etc.

IMO writing "Propel 2.0" or "Propel 2" (with a space) is much more consistent (even if some BC is broken, obviously this is part of a project lifecycle between major versions).

Oct 07, 2011
Francois said...
Oct 07, 2011
matvey liked this post.
Oct 07, 2011
Marius Ghita liked this post.
Oct 07, 2011
excpt liked this post.

Leave a comment...