The Symfony2 Stable API

Edit this page

Warning: You are browsing the documentation for Symfony 2.1, which is no longer maintained.

Read the updated version of this page for Symfony 6.1 (the current stable version).

The Symfony2 Stable API

The Symfony2 stable API is a subset of all Symfony2 published public methods (components and core bundles) that share the following properties:

  • The namespace and class name won't change;
  • The method name won't change;
  • The method signature (arguments and return value type) won't change;
  • The semantic of what the method does won't change.

The implementation itself can change though. The only valid case for a change in the stable API is in order to fix a security issue.

The stable API is based on a whitelist, tagged with `@api`. Therefore, everything not tagged explicitly is not part of the stable API.


Any third party bundle should also publish its own stable API.

As of Symfony 2.0, the following components have a public tagged API:

  • BrowserKit
  • ClassLoader
  • Console
  • CssSelector
  • DependencyInjection
  • DomCrawler
  • EventDispatcher
  • Filesystem (as of Symfony 2.1)
  • Finder
  • HttpFoundation
  • HttpKernel
  • Locale
  • Process
  • Routing
  • Templating
  • Translation
  • Validator
  • Yaml
This work, including the code samples, is licensed under a Creative Commons BY-SA 3.0 license.