We are now ready to release Symfony 2.0 final. As we have made some significant changes in the last couple of weeks, we are publishing another release candidate (RC5) today and we will wait for a week before releasing Symfony 2.0 final on Thursday 28th.

Read the UPDATE file to learn more about the recent changes.

To upgrade a Symfony Standard Edition application, update both the deps and deps.lock files:

Then, run the vendors script:

./bin/vendors install

After upgrading, don't forget to clear your cache:

php ./app/console cache:clear

During the last few months, a lot of developers have used Symfony2 for real-world projects, and thanks to them, we have had the possibility to enhance the framework and fix a lot of bugs. But we think that for some parts of the framework, we still need more real-world usage before stabilizing the API for the next few years.

For Symfony 2.0, the following components will have a tagged public API (@api) that is guaranteed to not change anymore for the entire life of Symfony 2.x:

  • BrowserKit
  • ClassLoader
  • Console
  • CssSelector
  • DependencyInjection
  • DomCrawler
  • EventDispatcher
  • Finder
  • HttpFoundation
  • HttpKernel
  • Locale
  • Process
  • Routing
  • Templating
  • Translation
  • Validator
  • Yaml

All classes, methods, and properties tagged with @api are part of the public API in the sense that we guarantee their stability over time: their name, signature, and behavior won't change for any minor version of the component.

But for a few components listed below, we know that we will probably have to make some more tweaks based on feedback we will have from the community (even if we will try to avoid any big backward compatibility breaks of course):

  • Config
  • Form
  • Security
  • Serializer

Symfony 2.1 will be the first release with all the components with a public stable API. And for components that already have a public API in 2.0, 2.1 will be the occasion to add even more classes and methods to it.