50% discount in conference replays
2020 and 2021 events
In English, French, German, Polish and Spanish

The Symfony Stable API

Edit this page

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

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

The Symfony Stable API

The Symfony stable API is a subset of all Symfony 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.


Read more about the stable API in Our backwards Compatibility Promise.


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

As of the latest stable release of Symfony, the following components have a public tagged API:

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