symfony, Propel, and Doctrine

As a lot of people ask me the same question over and over again, so here is some information about the state of the integration of ORM tools in symfony.

Even if symfony can use any ORM tool, or none at all, two libraries are tightly integrated with the symfony core: Propel and Doctrine.

Propel has been bundled with symfony since the first release two years ago.
Doctrine is a younger but a very promising ORM and has been available as a plugin since last year.

As I don't want to support two different ORM tools in the symfony core, one of them will always be the default and the one bundled with symfony.

symfony 1.0 and 1.1 both include Propel. The big difference between the two is quite significant. In symfony 1.1, Propel is bundled as a core plugin named sfPropelPlugin. This means that everything related to Propel is bundled in one plugin and Propel and Doctrine can have the same level of support.
So, the big differences is the default plugin bundled with the core and the fact that the bundled ORM is maintained, updated, and documented by the core team.

So, what is the version of Propel included with symfony 1.1? Why Doctrine is not bundled with symfony 1.1? Why symfony 1.1 still uses Propel 1.2?

Here are the answers in the list below:

  • symfony 1.0:
    • required PHP >= 5.0.4
    • Propel 1.2 included
    • Doctrine as a plugin
  • symfony 1.1:
    • requires PHP >= 5.1.4
    • Propel 1.2 included as a plugin
    • Doctrine as a plugin
  • symfony 1.2:
    • requires PHP >= 5.2.X?
    • Propel 1.3 included as a plugin
    • Doctrine as a plugin
  • symfony 2.0:
    • requries PHP >= 5.3.X?
    • Doctrine 1.0? included as a plugin
    • Propel 2.0? as a plugin

symfony 1.0 and 1.1 dependencies are definitive.

For symfony 1.2 and 2.0, this is what I expect, but it will depend on the availability of stable versions of Propel and Doctrine and their dependencies, so it is subject to change.

Doctrine was scheduled to be included in symfony 1.1 but it won't because it's not yet stable yet and requires PHP 5.2.



If Propel is managed as a plugin, maybe it will be possible to propose a new version of this official plugin when Propel 1.3 will be released (maybe soon ??) for Symfony 1.1 ?
sylvio: Yes, it will be possible, and I will commit a 1.1 plugin of propel 1.3 in the coming weeks.
Good decision. As much as my techy heart would like to have propel 1.3 in sf1.1 the truth is that you made an business decision not a technical one. propel 1.3 is not released, nor stable so it shouldn't go into any symfony release.
Even if that might cause irritation in the developer community, the bussines folks, which we all agree should be a focus group for the next time, will appreciate it.

.: Fabian
Even though I like Doctrine very much.. these days I need a rock solid and reliable solution for a very large project.. so I actually tend to switch back and use Propel 1.2 with sf 1.1...

Any thoughts from the business people? ;-)
I'm watching symfony since months, but my personal conclusions are - not to switch to it before having Propel 1.3/Doctrine e.g. before version 1.2.
I remember to be stuck by my PHP 5.0 version when I switched to Symfony 1.0.
A cli command needed PHP > 5.0...
So I jumped to PHP 5.2 and go back to work.
Sorry, dont remember the command...but I'm quite sure that symfony 1.0 needs more than PHP 5.0.4 !
Anyway, Propel behaviors are great, I hope they will survive in the new Propel Plugin...
Forgive me, but it still isn't clear to me why symfony 1.0 is not being shipped with Propel 1.3.
The Propel developers can't understand why either.
@Hal: Because symfony 1.0 must work with PHP < 5.1. Propel 1.3 requires Propel >= 5.2
<a href="">new las vegas casino</a>

Comments are closed.

To ensure that comments stay relevant, they are closed for old posts.