Master Symfony2 fundamentals

Be trained by SensioLabs experts (2 to 6 day sessions -- French or English).

Discover the SensioLabs Support

Access to the SensioLabs Competency Center for an exclusive and tailor-made support on Symfony

Fabien Potencier
symfony, Propel, and Doctrine
by Fabien Potencier – December 12, 2007 – 9 comments

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.


Comments RSS

  • gravatar
    #1 Sylvio said on the 2007/12/12 at 09:10
    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 ?
  • gravatar
    #2 Dustin Whittle said on the 2007/12/12 at 10:47
    sylvio: Yes, it will be possible, and I will commit a 1.1 plugin of propel 1.3 in the coming weeks.
  • gravatar
    #3 Fabian Lange said on the 2007/12/12 at 12:04
    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
  • gravatar
    #4 Matthias said on the 2007/12/12 at 15:03
    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? ;-)
  • gravatar
    #5 Stoyan said on the 2007/12/13 at 10:38
    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.
  • gravatar
    #6 Vincent Texier said on the 2007/12/13 at 18:15
    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...
  • gravatar
    #7 Hal said on the 2007/12/28 at 21:56
    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.
  • gravatar
    #8 Fabien said on the 2007/12/29 at 07:58
    @Hal: Because symfony 1.0 must work with PHP < 5.1. Propel 1.3 requires Propel >= 5.2
  • gravatar
    #9 ctlatquxgw said on the 2008/01/23 at 16:48
    <a href="">new las vegas casino</a>