xanders blog |

TAG | php



Compare symfony 1.4 and Symfony 2

Recently I have been at the crossroads of choosing between symfony 1.4 and Symfony2. This is a short list of pros and cons that helped with the decision making.

Other factors to consider:

Symfony 1


  • Knows it very well. Public API as well as internal workings.
  • PEAR for plugin management
  • Tried tested and true framework
  • Lots of plugins off the shelf from the community
  • I18N / L10N database for dates, etc complete ICU data
  • Well known best practices, naming conventions, configuration framework
  • Know what solution fits the job (when to use filters, helpers, extend internal components, etc)
  • Lots of documentation, how to’s, guides, tutorials, etc


  • Non xunit testing framework (lime)
  • Slower then symfony 2
  • End of maintenance 11/2012
  • Older technology
  • Does not take advantage of PHP 5.3 namespaces

Symfony 2


  • ESI – edge side includes. Big performance boost if used correctly.
  • Dependancy Injection and decoupling of modules
  • Takes advantage of PHP 5.3 – namespaces, etc. This provides much cleaner code.
  • Uses standard logging, etc other components from Zend
  • Standardized testing framework (PHPUnit)
  • Twig templating seem to provide succinct syntax
  • Mongo DB support out of the box
  • Doctrine 2


  • New to the team. Learning curve
  • Not finished development. Target is March 2011 for final
    • API not stable yet
    • Not as many projects in production
    • No admin generator bundle
  • Some modules we need may not be built yet
  • Seems like only support for handling install / upgrade / dependancies of bundles in git sub modules. No PEAR2 support (yet?)
  • Lack of complete documentation and how to’s

I actually had a small Q&A with symfony creator Fabien Potencier:

Me: Are there plans to integrate Pyrus package management into Symfony 2 for bundles? Is GIT submodules all there is / planned?

Fabien: We have something planned, but it’s too early to talk about it. I can say that the tools will be more flexible than Pyrus and will probably be something on top of it (to be able to install a bundle hosted on Git without the need to create a PEAR package for instance).

Me: Are there plans to create a Jobeet style end-to-end application tutorial? At what date?

Fabien: No. However, a book is being written.

Me: Are there any feature sets of Symfony 2 that are lacking compared to the more mature symfony 1?

Fabien: The admin generator. But that’s something we will work on soon.

Me: Does Symfony 2 have a supported way to handle an asset CDN other then a hack like the override of “_compute_public_path()” helper in symfony 1?

Fabien: Yes, it is supported out of the box.

· · ·

Theme Design by devolux.nh2.me