Back in April we saw the first BETA release of Symfony2. Since then we’ve seen 5 beta versions, but earlier today the final version of 2.0 was released. So I’m left with the question on the back of my mind, how many companies will be upgrading their projects from 1.x? Or will they just accept that their existing projects are staying on 1.x and new ones shall be commissioned to build replacements on the new platform?
So what’s big in Symfony2?
- Dependency Injection is used all over the place in this version, and it even comes with built-in Dependency Injection Container, which I’m looking forward to playing a little more with over the coming weeks.
- It’s fast, the performance stats for this version of the framework are brilliant. Not only this, but Symfony2 has been built to fully embrace the HTTP standard, which will be nice for building REST services, but also the ESI standard. Which should make new applications very fast, but I still think that putting a Varnish cache or equivalent in front of the code will make it even faster.
- The debug toolbar has been evolved. The previous versions have been powerful, but on paper the new version has even more features, as well as a new Profiler, which should help when code is not behaving and make tracking down why it broke even easier.
- There is a full security component that can be added, which gives you a full tool box of security features from simple login and authentication methods to advanced X.509 certificates and ACLs. The best part is, they can be added to an application with just a few settings in the configuration file. There is even an implementation within the component to protect against time-based attacks, which is another part of the new codebase I will be looking into a little more closely.
- Documentation, Symfony1 has plenty of documentation available from http://www.symfony-project.org and Symfony2 has just as much, with a “Quick Tour” tutorial, a Book, a Cookbook; but also an index, a glossary, and a reference section; and for hardcore documentation, you can have a look at the beautiful API documentation.