File: changelog.xml

package info (click to toggle)
php-doc 20250827~git.abe740d%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 71,968 kB
  • sloc: xml: 985,760; php: 25,504; javascript: 671; sh: 177; makefile: 37
file content (355 lines) | stat: -rw-r--r-- 11,585 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<sect1 xml:id="language.oop5.changelog" xmlns="http://docbook.org/ns/docbook">
 <title>OOP Changelog</title>
 <para>
  Changes to the PHP OOP model are logged here. Descriptions and other notes regarding
  these features are documented within the OOP model documentation.
 </para>
 <para>
  <informaltable>
   <tgroup cols="2">
    <thead>
     <row>
      <entry>&Version;</entry>
      <entry>&Description;</entry>
     </row>
    </thead>
    <tbody>
     <row>
      <entry>8.4.0</entry>
      <entry>
       Added: Support for <link linkend="language.oop5.property-hooks">Property Hooks</link>.
      </entry>
     </row>
     <row>
      <entry>8.4.0</entry>
      <entry>
       Added: Support for <link linkend="language.oop5.lazy-objects">Lazy Objects</link>.
      </entry>
     </row>
     <row>
      <entry>8.1.0</entry>
      <entry>
       Added: Support for the <modifier>final</modifier> modifier for class constants. Also, interface constants become overridable by default.
      </entry>
     </row>
     <row>
      <entry>8.0.0</entry>
      <entry>
       Added: Support for the <link linkend="language.oop5.basic.nullsafe">nullsafe operator</link> <emphasis>?-&gt;</emphasis> to access properties and methods on objects that may be null.
      </entry>
     </row>
     <row>
      <entry>7.4.0</entry>
      <entry>
       Changed: It is now possible to throw exception within
       <function>__toString</function>.
      </entry>
     </row>
     <row>
      <entry>7.4.0</entry>
      <entry>
       Added: Support for limited return type covariance and argument
       type contravariance. Full variance support is only available if
       autoloading is used. Inside a single file only non-cyclic type
       references are possible.
      </entry>
     </row>
     <row>
      <entry>7.4.0</entry>
      <entry>
       Added: It is now possible to type class properties.
      </entry>
     </row>
     <row>
      <entry>7.3.0</entry>
      <entry>
       Incompatibility: Argument unpacking of
       <classname>Traversable</classname>s with non-&integer; keys is no longer
       supported. This behaviour was not intended and thus has been removed.
      </entry>
     </row>
     <row>
      <entry>7.3.0</entry>
      <entry>
       Incompatibility: In previous versions it was possible to separate the
       static properties by assigning a reference. This has been removed.
      </entry>
     </row>
     <row>
      <entry>7.3.0</entry>
      <entry>
       Changed: The <link linkend="language.operators.type">instanceof</link>
       operator now allows literals as the first operand, in which case the
       result is always &false;.
      </entry>
     </row>
     <row>
      <entry>7.2.0</entry>
      <entry>
       Deprecated: The <function>__autoload</function> method has been
       deprecated in favour of <function>spl_autoload_register</function>.
      </entry>
     </row>
     <row>
      <entry>7.2.0</entry>
      <entry>
       Changed: The following name cannot be used to name classes, interfaces,
       or traits: <literal>object</literal>.
      </entry>
     </row>
     <row>
      <entry>7.2.0</entry>
      <entry>
       Changed: A trailing comma can now be added to the group-use syntax
       for namespaces.
      </entry>
     </row>
     <row>
      <entry>7.2.0</entry>
      <entry>
       Changed: Parameter type widening. Parameter types from overridden
       methods and from interface implementations may now be omitted.
      </entry>
     </row>
     <row>
      <entry>7.2.0</entry>
      <entry>
       Changed: Abstract methods can now be overridden when an abstract class
       extends another abstract class.
      </entry>
     </row>
     <row>
      <entry>7.1.0</entry>
      <entry>
       Changed: The following names cannot be used to name classes, interfaces,
       or traits: <literal>void</literal> and <literal>iterable</literal>.
      </entry>
     </row>
     <row>
      <entry>7.1.0</entry>
      <entry>
       Added: It is now possible to specify the
       <link linkend="language.oop5.visiblity-constants">visibility of
        class constants</link>.
      </entry>
     </row>
     <row>
      <entry>7.0.0</entry>
      <entry>
       Deprecated: <link linkend="language.oop5.static">Static</link> calls
       to methods that are not declared static.
      </entry>
     </row>
     <row>
      <entry>7.0.0</entry>
      <entry>
       Deprecated: PHP 4 style <link linkend="language.oop5.decon">
       constructor</link>. I.e. methods that have the same name as the class
       they are defined in.
      </entry>
     </row>
     <row>
      <entry>7.0.0</entry>
      <entry>
       Added: Group <emphasis>use</emphasis> declaration: classes, functions
       and constants being imported from the same namespace can now be grouped
       together in a single use statement.
      </entry>
     </row>
     <row>
      <entry>7.0.0</entry>
      <entry>
       Added: Support for
       <link linkend="language.oop5.anonymous">anonymous classes</link>
       has been added via <literal>new class</literal>.
      </entry>
     </row>
     <row>
      <entry>7.0.0</entry>
      <entry>
       Incompatibility: Iterating over a non-<classname>Traversable</classname>
       &object; will now have the same behaviour as iterating over by-reference
       &array;s.
      </entry>
     </row>
     <row>
      <entry>7.0.0</entry>
      <entry>
       Changed: Defining (compatible) properties in two used
       <link linkend="language.oop5.traits">traits</link> no longer
       triggers an error.
      </entry>
     </row>
     <row>
      <entry>5.6.0</entry>
      <entry>
       Added: The <link linkend="object.debuginfo">__debugInfo()</link> method.
      </entry>
     </row>
     <row>
      <entry>5.5.0</entry>
      <entry>
       Added: The <link linkend="language.oop5.basic.class.class">::class</link> magic constant.
      </entry>
     </row>
     <row>
      <entry>5.5.0</entry>
      <entry>
       Added: <link linkend="language.exceptions">finally</link> to handle exceptions.
      </entry>
     </row>
     <row>
      <entry>5.4.0</entry>
      <entry>
       Added: <link linkend="language.oop5.traits">traits</link>.
      </entry>
     </row>
     <row>
      <entry>5.4.0</entry>
      <entry>
       Changed: If an <link linkend="language.oop5.abstract">abstract</link> class
       defines a signature for the <link linkend="language.oop5.decon">
       constructor</link> it will now be enforced.
      </entry>
     </row>
     <row>
      <entry>5.3.3</entry>
      <entry>
       Changed: Methods with the same name as the last element of
       a <link linkend="language.namespaces">namespaced</link>
       class name will no longer be treated as <link
       linkend="language.oop5.decon">constructor</link>. This change doesn't
       affect non-namespaced classes.
      </entry>
     </row>
     <row>
      <entry>5.3.0</entry>
      <entry>
       Changed: Classes that implement interfaces with methods that have default 
       values in the prototype are no longer required to match the interface's default 
       value.
      </entry>
     </row>
     <row>
      <entry>5.3.0</entry>
      <entry>
       Changed: It's now possible to reference the class using a variable (e.g.,
       <literal>echo $classname::constant;</literal>).
       The variable's value can not be a keyword (e.g., <literal>self</literal>,
       <literal>parent</literal> or <literal>static</literal>).
      </entry>
     </row>
     <row>
      <entry>5.3.0</entry>
      <entry>
       Changed: An <constant>E_WARNING</constant> level error is issued if
       the magic <link linkend="language.oop5.overloading">overloading</link>
       methods are declared <link linkend="language.oop5.static">static</link>.
       It also enforces the public visibility requirement.
      </entry>
     </row>
     <row>
      <entry>5.3.0</entry>
      <entry>
       Changed: Prior to 5.3.0, exceptions thrown in the
       <function>__autoload</function> function could not be
       caught in the <link linkend="language.exceptions">catch</link> block, and
       would result in a fatal error. Exceptions now thrown in the __autoload function
       can be caught in the <link linkend="language.exceptions">catch</link> block, with
       one provison. If throwing a custom exception, then the custom exception class must
       be available. The __autoload function may be used recursively to autoload the
       custom exception class.
      </entry>
     </row>
     <row>
      <entry>5.3.0</entry>
      <entry>
       Added: The <link linkend="language.oop5.overloading">__callStatic</link> method.
      </entry>
     </row>
     <row>
      <entry>5.3.0</entry>
      <entry>
       Added: <link linkend="language.types.string.syntax.heredoc">heredoc</link>
       and <link linkend="language.types.string.syntax.nowdoc">nowdoc</link>
       support for class <emphasis>const</emphasis> and property definitions.
       Note: heredoc values must follow the same rules as double-quoted strings,
       (e.g. no variables within).
      </entry>
     </row>
     <row>
      <entry>5.3.0</entry>
      <entry>
       Added: <link linkend="language.oop5.late-static-bindings">Late Static Bindings</link>.
      </entry>
     </row>
     <row>
      <entry>5.3.0</entry>
      <entry>
       Added: The <link linkend="object.invoke">__invoke()</link> method.
      </entry>
     </row>
     <row>
      <entry>5.2.0</entry>
      <entry>
       Changed: The <link linkend="object.tostring">__toString()</link>
       method was only called when it was directly combined with
       <function>echo</function> or <function>print</function>.
       But now, it is called in any &string; context (e.g. in
       <function>printf</function> with <literal>%s</literal> modifier) but not
       in other types contexts (e.g. with <literal>%d</literal> modifier).
       As of PHP 5.2.0, converting &object;s without a
       <link linkend="object.tostring">__toString</link> method to &string;
       emits a <constant>E_RECOVERABLE_ERROR</constant> level error.
      </entry>
     </row>
     <row>
      <entry>5.1.3</entry>
      <entry>
       Changed: In previous versions of PHP 5, the use of <literal>var</literal>
       was considered deprecated and would issue an <constant>E_STRICT</constant>
       level error. It's no longer deprecated, therefore does not emit the error.
      </entry>
     </row>
     <row>
      <entry>5.1.0</entry>
      <entry>
       Changed: The <link linkend="object.set-state">__set_state()</link> static
       method is now called for classes exported by <function>var_export</function>.
      </entry>
     </row>
     <row>
      <entry>5.1.0</entry>
      <entry>
       Added: The <link linkend="object.isset">__isset()</link>
       and <link linkend="object.unset">__unset()</link> methods.
      </entry>
     </row>
    </tbody>
   </tgroup>
  </informaltable>
 </para>
</sect1>
 
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->