@@ -181,7 +181,7 @@ Symfony's classes:
181
181
Type of Change Change Allowed
182
182
================================================== ==============
183
183
Remove entirely No
184
- Make final No
184
+ Make final No [ 6 ]_
185
185
Make abstract No
186
186
Change name or namespace No
187
187
Change parent class Yes [4 ]_
@@ -194,8 +194,8 @@ Reduce visibility No
194
194
Move to parent class Yes
195
195
**Protected Properties **
196
196
Add protected property Yes
197
- Remove protected property No
198
- Reduce visibility No
197
+ Remove protected property No [ 7 ]_
198
+ Reduce visibility No [ 7 ]_
199
199
Move to parent class Yes
200
200
**Private Properties **
201
201
Add private property Yes
@@ -204,7 +204,7 @@ Remove private property Yes
204
204
Add constructor without mandatory arguments Yes [1 ]_
205
205
Remove constructor No
206
206
Reduce visibility of a public constructor No
207
- Reduce visibility of a protected constructor No
207
+ Reduce visibility of a protected constructor No [ 7 ]_
208
208
Move to parent class Yes
209
209
**Public Methods **
210
210
Add public method Yes
@@ -213,29 +213,29 @@ Change name No
213
213
Reduce visibility No
214
214
Move to parent class Yes
215
215
Add argument without a default value No
216
- Add argument with a default value No
216
+ Add argument with a default value No [ 7 ]_ [ 8 ]_
217
217
Remove argument Yes [3 ]_
218
- Add default value to an argument No
218
+ Add default value to an argument No [ 7 ]_ [ 8 ]_
219
219
Remove default value of an argument No
220
- Add type hint to an argument No
221
- Remove type hint of an argument No
222
- Change argument type No
223
- Change return type No
220
+ Add type hint to an argument No [ 7 ]_ [ 8 ]_
221
+ Remove type hint of an argument No [ 7 ]_ [ 8 ]_
222
+ Change argument type No [ 7 ]_ [ 8 ]_
223
+ Change return type No [ 7 ]_ [ 8 ]_
224
224
**Protected Methods **
225
225
Add protected method Yes
226
- Remove protected method No
227
- Change name No
228
- Reduce visibility No
226
+ Remove protected method No [ 7 ]_
227
+ Change name No [ 7 ]_
228
+ Reduce visibility No [ 7 ]_
229
229
Move to parent class Yes
230
- Add argument without a default value No
231
- Add argument with a default value No
230
+ Add argument without a default value No [ 7 ]_
231
+ Add argument with a default value No [ 7 ]_ [ 8 ]_
232
232
Remove argument Yes [3 ]_
233
- Add default value to an argument No
234
- Remove default value of an argument No
235
- Add type hint to an argument No
236
- Remove type hint of an argument No
237
- Change argument type No
238
- Change return type No
233
+ Add default value to an argument No [ 7 ]_ [ 8 ]_
234
+ Remove default value of an argument No [ 7 ]_
235
+ Add type hint to an argument No [ 7 ]_ [ 8 ]_
236
+ Remove type hint of an argument No [ 7 ]_ [ 8 ]_
237
+ Change argument type No [ 7 ]_ [ 8 ]_
238
+ Change return type No [ 7 ]_ [ 8 ]_
239
239
**Private Methods **
240
240
Add private method Yes
241
241
Remove private method Yes
@@ -250,7 +250,7 @@ Remove type hint of an argument Yes
250
250
Change argument type Yes
251
251
Change return type Yes
252
252
**Static Methods **
253
- Turn non static into static No
253
+ Turn non static into static No [ 7 ]_ [ 8 ]_
254
254
Turn static into non static No
255
255
**Constants **
256
256
Add constant Yes
@@ -277,6 +277,20 @@ Change value of a constant Yes [1]_ [5]_
277
277
Additionally, if a constant will likely be used in objects that are
278
278
serialized, the value of a constant should not be changed.
279
279
280
+ .. [6 ] Allowed using the ``@final `` annotation.
281
+
282
+ .. [7 ] Allowed if the class is final. Classes that received the ``@final ``
283
+ annotation after their first release are considered final in their
284
+ next major version.
285
+ Changing an argument type is only possible with a parent type.
286
+ Changing a return type is only possible with a child type.
287
+
288
+ .. [8 ] Allowed if the method is final. Methods that received the ``@final ``
289
+ annotation after their first release are considered final in their
290
+ next major version.
291
+ Changing an argument type is only possible with a parent type.
292
+ Changing a return type is only possible with a child type.
293
+
280
294
.. _Semantic Versioning : http://semver.org/
281
295
.. _scalar type : http://php.net/manual/en/function.is-scalar.php
282
296
.. _boolean values : http://php.net/manual/en/function.boolval.php
0 commit comments