Before we began working on symfony 1.3, we asked the community about their priorities for the framework.

We had a lot of suggestions, and some of them were contradictory. As of today, the second and fourth most voted suggestions are: "make Doctrine the default ORM" and "do not make Doctrine the default ORM". How can we make everybody happy?

Thanks to the new installer feature of the generate:project task, symfony 1.3 is able to create a project for Doctrine or Propel very easily.

But we still need a default ORM. That was not my opinion some months ago, but after some great discussions with members of the community, I changed my mind. We don't want to bother new users with a question about the ORM they want to use. How a newcomer can make a choice between Propel and Doctrine? It is just not possible. We cannot ask him to read all the documentation just to make a choice. It does not make any sense. As Doctrine is the future of symfony, we decided to make it the default choice when creating a new project:

$ php /path/to/symfony generate:project foobar

But if you still want to use Propel, that's not a problem, just add a --orm option:

$ php /path/to/symfony generate:project foobar --orm=Propel

The implementation is dead-easy, and you will now enjoy a Propel-free project when using Doctrine, and of course the other way around when working with Propel.

To sum up, symfony 1.3 support both Propel and Doctrine equally, with a preference towards Doctrine if you start a new project today.

Published in #Living on the edge