Archive for January 2011
No tags
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:
- Expected lifetime of the website
- Other sites at production level are built with Symfony2
- Other web shops starting to use Symfony2
Symfony 1
Pros
- 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
Cons
- 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
Pros
- 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
Cons
- 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.
compare · frameworks · php · symfony
