After 12 preview releases, 5 beta versions, and 6 release candidates, I'm very proud to announce the immediate availability of Symfony 2.0, final version.

Since the first preview release, published 18 months ago during the Symfony Live conference, the Symfony community has done an amazing work. The Symfony2 code quality would not have been the same without their outstanding work. Thank you!

The Community

The involvement of the community for this version of the framework is just incredible. More than 250 developers have contributed in one way or another to this major version through more than 2,000 pull requests. And that's just the beginning as the community is growing at a very fast pace. Since March 2011, more than 100 new contributors have joined the Symfony2 team (250 vs 150); and more than 250 new bundles have been created on Github (440 vs 170).

Another way to understand the level of the community commitment is to compare it with other projects. Symfony2 is currently the most popular PHP project on Github (most forked and most watched overall) and the 12th most forked project for the whole Github platform. That's just astonishing!

The Symfony2 community is also hard at work to create a great ecosystem of additional libraries that work well with Symfony2 like Assetic, Monolog, Twig, Imagine, and many more.

The Code

Symfony2 embraces standards: First, Symfony2 is willingly centered around the HTTP specification (just have a look at the built-in HTTP reverse proxy). Then, we are embracing the PHP standards: PHPUnit, namespaces, PSR-0 autoloader, ... That makes Symfony2 easily interoperable with many other great PHP libraries.

Symfony2 is decoupled: Beside being a full-stack framework, Symfony2 is also a set of decoupled and cohesive components; Symfony2 is made of 21 components that can be used as standalone libraries: they have their own Git repositories, and they are all available as PEAR packages.

Symfony2 has many innovations that are unique in the PHP world:

  • Symfony2 uses the Dependency Injection pattern extensively and it comes with a built-in Dependency Injection Container. It makes Symfony2 very flexible and easily customizable.

  • Symfony2 is packaged as Distributions: A distribution is a pre-configured Symfony2 project with a selection of bundles and sensible defaults. The Symfony Standard Edition also comes with a Web configurator. That makes the installation and configuration of a new Symfony2 project fast and insanely easy.

  • Everything is a Bundle in Symfony2: A bundle is a directory containing a set of files (PHP files, stylesheets, JavaScripts, images, ...) that implement a single feature (a blog, a forum, etc). That changes everything. Share your bundles between your projects or publish them in the wild.

  • Symfony2 is Fast: the raw performance of the framework is great, but there is more. By embracing the HTTP standard, and thanks to the ESI standard, you can make your application fly very easily. Make your application as dynamic as you need it to be, and still benefit from HTTP caching. And if you can afford the installation of a reverse proxy like Varnish, the performance of your application will just be incredible.

  • Symfony2 eases the debugging of your application thanks to the Web Debug Toolbar and the Profiler: symfony1 was the very first major framework to come with a web debug toolbar. Symfony2 pushes the limits even further with a brand new debug toolbar and the introduction of a gorgeous profiler. The profiler gives you all the information you need to understand what's going on behind the scene in case of a problem.

  • Symfony2 simplifies your life as much as possible: we have worked hard to give you the best experience possible. After installing a distribution, the interactive generators will help you generate code easily by guiding you through some simple questions. And when an error occurs, Symfony2 goes beyond displaying the error message: it displays the whole stack trace, the linked exceptions, and all the files are one-click away from your IDE. We have also tweaked the error messages to make them as comprehensible as possible.

  • Symfony takes Security very seriously. The Security component gives you all the tools you need to secure your applications: from the simple form logins to the more advanced X.509 certificates and ACLs, everything is as easy as adding a few settings in a configuration file. We have gone as far as implementing time-based attacks protection. Speaking of security, and thanks to the community again, the whole code base has been audited recently by SektionEins and all their remarks have been taken into account.

The Documentation

As you all know, code is not everything. Symfony2 also comes with great documentation. The documentation is made of 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.

Thanks to the migration to Git and the usage of the ReST format, contributing to the documentation has never been easier. In fact, more than 140 people have contributed to the documentation. That's amazing! Thanks to them, we already have more than 60 cookbook entries.

How to get started?

If you want to give Symfony2 a try, download the Symfony2 Standard Edition and read the Quick Tour.

If you are coming from a symfony1 background, read the How Symfony2 differs from symfony1 cookbook article to learn more about the main differences.

Celebrate!

Now that Symfony2 is released, it's time to celebrate.

Published in #Releases