Skip to content

Commit 0d2487f

Browse files
committed
added a new document for the stable API
1 parent 5b94dcb commit 0d2487f

File tree

3 files changed

+41
-0
lines changed

3 files changed

+41
-0
lines changed

guides/index.rst

+1
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,6 @@ Dive into Symfony2 with the topical guides:
2020
bundles/index
2121
internals/index
2222
symfony1
23+
stable_api
2324

2425
.. include:: map.rst.inc

guides/map.rst.inc

+1
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,4 @@
6666
* :doc:`Profiler </guides/internals/profiler>`
6767

6868
* :doc:`Symfony2 for symfony 1 users</guides/symfony1>`
69+
* :doc:`Symfony2 stable API</guides/stable_api>`

guides/stable_api.rst

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
The Symfony2 Stable API
2+
=======================
3+
4+
The Symfony2 stable API is a subset of all Symfony2 published public methods
5+
(components and core bundles) that share the following properties:
6+
7+
* The namespace and class name won't change;
8+
* The method name won't change;
9+
* The method signature (arguments and return value type) won't change;
10+
* The semantic of what the method does won't change.
11+
12+
The implementation itself can change though. The only valid case for a change
13+
in the stable API is in order to fix a security issue.
14+
15+
.. note::
16+
17+
The stable API is based on a whitelist. Therefore, everything not listed
18+
explicitly in this document is not part of the stable API.
19+
20+
.. note::
21+
22+
This is a work in progress and the definitive list will be published when
23+
Symfony2 final will be released. In the meantime, if you think that some
24+
methods deserve to be in this list, please start a discussion on the
25+
Symfony developer mailing-list.
26+
27+
.. tip::
28+
29+
Any method part of the stable API is marked as such on the Symfony2 API
30+
website (has the ``@stable`` annotation).
31+
32+
.. tip::
33+
34+
Any third party bundle should also publish its own stable API.
35+
36+
HttpKernel Component
37+
--------------------
38+
39+
* HttpKernelInterface:::method:`Symfony\\Components\\HttpKernel\\HttpKernelInterface::handle`

0 commit comments

Comments
 (0)