1: $Id: UPGRADING,v 1.1.1.2 2012/05/29 12:34:34 misho Exp $
2:
3: PHP 5.4 UPGRADE NOTES
4:
5: ===========
6: 0. Contents
7: ===========
8:
9: 1. Changes to INI directives
10: 2. Changes to reserved words and classes
11: 3. Changes to engine behavior
12: 4. Changes to existing functions
13: 5. Changes to existing classes
14: 6. Changes to existing methods
15: 7. Deprecated Functionality
16: 8. Removed Functionality
17: a. Removed features
18: b. Removed functions
19: c. Removed syntax
20: d. Removed hash algorithms
21: 9. Extension Changes:
22: a. Extensions no longer maintained
23: b. Extensions with changed behavior
24: 10. Changes in SAPI support
25: 11. Windows support
26: 12. New in PHP 5.4:
27: a. New features
28: b. Syntax additions
29: c. New functions
30: d. New global constants
31: e. New classes
32: f. New methods
33: g. New hash algorithms
34:
35: =============================
36: 1. Changes to INI directives
37: =============================
38:
39: - PHP 5.4 now checks at compile time if /dev/urandom or /dev/arandom
40: are present. If either is available, session.entropy_file now
41: defaults to that file and session.entropy_length defaults to 32.
42: This provides non-blocking entropy to session id generation. If you
43: do not want extra entropy for your session ids, add:
44:
45: session.entropy_file=
46: session.entropy_length=0
47:
48: to your php.ini to preserve pre-PHP 5.4 behavior.
49:
50: - Deprecated php.ini directives will now throw an E_CORE_WARNING's
51: instead of the previous E_WARNING's.
52:
53: - The following php.ini directives are no longer available in PHP 5.4
54: and will now throw an E_CORE_ERROR upon startup:
55: - allow_call_time_pass_reference
56: - define_syslog_variables
57: - highlight.bg
58: - magic_quotes_gpc
59: - magic_quotes_runtime
60: - magic_quotes_sybase
61: - register_globals
62: - register_long_arrays
63: - safe_mode
64: - safe_mode_gid
65: - safe_mode_include_dir
66: - safe_mode_exec_dir
67: - safe_mode_allowed_env_vars
68: - safe_mode_protected_env_vars
69: - session.bug_compat_42
70: - session.bug_compat_warn
71: - y2k_compliance
72: - zend.ze1_compatibility_mode
73:
74: - the following new php.ini directives were added:
75: - max_input_vars - specifies how many GET/POST/COOKIE input
76: variables may be accepted. The default value is 1000.
77:
78: - E_ALL now includes E_STRICT.
79:
80: - The recommended production value for error_reporting changed to E_ALL &
81: ~E_DEPRECATED & ~E_STRICT.
82:
83: - Added new session support directives:
84: session.upload_progress.enabled
85: session.upload_progress.cleanup
86: session.upload_progress.prefix
87: session.upload_progress.name
88: session.upload_progress.freq
89: session.upload_progress.min_freq
90:
91: - Added a zend.multibyte directive as a replacement of the PHP compile time
92: configuration option --enable-zend-multibyte. Now the Zend Engine always
93: contains code for multibyte support, which can be enabled or disabled at
94: runtime. Note: It doesn't make a lot of sense to enable this option if
95: ext/mbstring is not enabled, because most functionality is implemented by
96: mbstrings callbacks.
97:
98: - Added zend.script_encoding. This value will be used unless a
99: "declare(encoding=...)" directive appears at the top of the script.
100:
101: - Added zend.signal_check to check for replaced signal handlers on shutdown
102:
103: - Added enable_post_data_reading, which is enabled by default. When it's
104: disabled, the POST data is not read (or processed); the behavior is similar
105: to that of other request methods with body, like PUT. This allows reading
106: the raw POST data in multipart requests and reading/processing the POST data
107: in a stream fashion (through php://input) without having it copied in memory
108: multiple times.
109:
110: - Added windows_show_crt_warning. This directive shows the CRT warnings when
111: enabled. These warnings were displayed by default until now. It is disabled
112: by default.
113:
114: - Added cli.pager to set a pager for CLI interactive shell output.
115:
116: - Added cli.prompt to configure the CLI interactive shell prompt.
117:
118: - Added cli_server.color to enable the CLI web server to use ANSI color coding
119: in terminal output.
120:
121: ========================================
122: 2. Changes to reserved words and classes
123: ========================================
124:
125: - "callable", "insteadof" and "trait" are now reserved words.
126:
127: =============================
128: 3. Changes to engine behavior
129: =============================
130:
131: - The __construct arguments of an extended abstract constructor must
132: now match:
133:
134: abstract class Base
135: {
136: abstract public function __construct();
137: }
138: class Foo extends Base
139: {
140: public function __construct($bar) {}
141: }
142:
143: This now emits a Fatal error due the incompatible declaration.
144:
145: - In previous versions, superglobal names could be used for parameter
146: names, thereby shadowing the corresponding superglobal. In PHP 5.4
147: this now causes a fatal error such as "Cannot re-assign auto-global
148: variable GLOBALS".
149:
150: - Turning null, false or an empty string into an object by adding a
151: property will now emit a warning instead of an E_STRICT error.
152:
153: $test = null;
154: $test->baz = 1;
155:
156: To create a generic object you can use StdClass:
157:
158: $test = new StdClass;
159: $test->baz = 1;
160:
161: - Converting an array to a string now will cause an E_NOTICE warning.
162:
163: - Non-numeric string offsets, e.g. $a['foo'] where $a is a string, now
164: return false on isset() and true on empty(), and produce warning if
165: trying to use them. Offsets of types double, bool and null produce
166: notice. Numeric strings ($a['2']) still work as before.
167:
168: Note that offsets like '12.3' and '5 and a half' are considered
169: non-numeric and produce warning, but are converted to 12 and 5
170: respectively for backwards compatibility reasons.
171:
172: - Closures now support scopes and $this and can be rebound to
173: objects using Closure::bind() and Closure::bindTo().
174:
175: - <?= is now always available regardless of the short_open_tag
176: setting.
177:
178: - Parse error messages are changed to contain more information about
179: the error.
180:
181: ================================
182: 4. Changes to existing functions
183: ================================
184:
185: - array_combine now returns array() instead of FALSE when two empty arrays are
186: provided as parameters.
187:
188: - dns_get_record() has an extra parameter which allows requesting DNS records
189: by numeric type and makes the result include only the raw data of the
190: response.
191:
192: - call_user_func_array() no longer allows call-time pass by reference.
193:
194: - the default character set for htmlspecialchars() and htmlentities() is
195: now UTF-8. In previous versions it was ISO-8859-1. Note that changing
196: your output charset via the php.ini default_charset directive does not
197: affect htmlspecialchars/htmlentities unless you are passing "" (an
198: empty string) as the encoding parameter to your htmlspecialchars/htmlentities
199: calls.
200:
201: - htmlentities() and htmlspecialchars() are stricter in the code units they
202: accept for the asian encodings. For Big5-HKSCS, the octets 0x80 and 0xFF are
203: rejected. For GB2312/EUC-CN, the octets 0x8E, 0x8F, 0xA0 and 0xFF are
204: rejected. For SJIS, the octets 0x80, 0xA0, 0xFD, 0xFE and 0xFF are rejected,
205: except maybe after a valid starting byte. For EUC-JP, the octets 0xA0 and
206: 0xFF are rejected.
207:
208: - htmlentities() now emits an E_STRICT warning when used with asian characters,
209: as in that case htmlentities has (and already had before this version) the
210: same functionality as htmlspecialchars.
211:
212: - htmlentities() no longer numerically encodes high characters for single-byte
213: encodings (except when there's actually a corresponding named entity). This
214: behavior was not documented and was inconsistent with that for "UTF-8".
215:
216: - html_entity_decode() and htmlspecialchars_decode() behave more consistently,
217: now decoding entities in malformed strings such as "&&" or "&#&".
218:
219: - htmlentities(), htmlspecialchars(), html_entity_decode(), and
220: htmlspecialchars_decode: Added the flags ENT_HTML401, ENT_XML1, ENT_XHTML,
221: and ENT_HTML5. The behavior of these functions including, but not limited to,
222: the characters that are encoded and the entities that are decoded depend on
223: the document type that is specified by those flags.
224:
225: - htmlentities() and htmlspecialchars() with !$double_encode do more strict
226: checks on the validity of the entities. Numerical entities are checked for a
227: valid range (0 to 0x10FFFF); if the flag ENT_DISALLOWED is given, the
228: validity of such numerical entity in the target document type is also
229: checked. Named entities are checked for necessary existence in the target
230: document type instead of only checking whether they were constituted by
231: alphanumeric characters.
232:
233: - The flag ENT_DISALLOWED was added. In addition to the behavior described in
234: the item before, it also makes htmlentities() and htmlspecialchars()
235: substitute characters that appear literally in the argument string and which
236: are not allowed in the target document type with U+FFFD (UTF-8) or �.
237:
238: - The flag ENT_SUBSTITUTE was added. This flag makes invalid multibyte
239: sequences be replaced by U+FFFD (UTF-8) or &#FFFD; by htmlspecialchars() and
240: htmlentities(). It is an alternative to the default behavior, which just
241: returns an empty string and to ENT_IGNORE, which is a security risk. The
242: behavior follows the recommendations of Unicode Technical Report #36.
243:
244: - htmlspecialchars_decode() and html_entity_decode() now decode ' if the
245: document type is ENT_XML1, ENT_XHTML, or ENT_HTML5.
246:
247: - Charset detection with $charset == '' no longer turns to mbstring's
248: internal encoding defined through mb_internal_encoding(). Only the encoding
249: defined through the php.ini setting mbstring.internal_encoding is considered.
250:
251: - number_format() no longer truncates multibyte decimal points and thousand
252: separators to the first byte.
253:
254: - The third parameter ($matches) to preg_match_all() is now optional. If
255: omitted, the function will simply return the number of times the pattern was
256: matched in the subject and will have no other side effects.
257:
258: - The second argument of scandir() now accepts SCANDIR_SORT_NONE (2) as a
259: possible value. This value results in scandir() performing no sorting: on
260: local filesystems, this allows files to be returned in native filesystem
261: order.
262:
263: - stream_select() now preserves the keys of the passed array, be they numeric or
264: strings. This breaks code that iterated the resulting stream array using a
265: numeric index, but makes easier to identify which of the passed streams are
266: present in the result.
267:
268: - stream_set_write_buffer() no longer disables the read buffer of a plain
269: stream when 0 is given as the second argument.
270:
271: - stream_set_write_buffer() no longer changes the chunk size in socket streams.
272:
273: - fclose() closes streams with resource refcount > 1; it doesn't merely
274: decrement the resource refcount.
275:
276: - socket_set_options() and socket_get_options() now support multicast options.
277:
278: - The raw data parameter in openssl_encrypt() and openssl_decrypt() is now an
279: options integer rather than a boolean. A value of true produces the same
280: behavior.
281:
282: - Write operations within XSLT (for example with the extension sax:output) are
283: disabled by default. You can define what is forbidden with the method
284: XsltProcess::setSecurityPrefs($options).
285:
286: - Added AES support to OpenSSL.
287:
288: - openssl_csr_new() expects the textual data to be in UTF-8.
289:
290: - Added no-padding option to openssl_encrypt() and openssl_decrypt().
291:
292: - Added a "no_ticket" SSL context option to disable the SessionTicket TLS
293: extension.
294:
295: - Added new json_encode() options: JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES,
296: JSON_NUMERIC_CHECK, JSON_BIGINT_AS_STRING, JSON_UNESCAPED_UNICODE.
297:
298: - Added Tokyo Cabinet and Berkley DB 5 support to DBA extension.
299:
300: - Added support for CURLOPT_MAX_SEND_SPEED_LARGE and CURLOPT_MAX_RECV_SPEED_LARGE
301: to cURL.
302:
303: - Added optional argument to debug_backtrace() and debug_print_backtrace()
304: to limit the amount of stack frames returned.
305:
306: - Fixed crypt_blowfish handling of 8-bit characters. crypt() in Blowfish mode
307: now supports hashes marked $2a$, $2x$, $2y$ and $2z$.
308:
309: - mbstring now supports following encodings: Shift_JIS/UTF-8 Emoji,
310: JIS X0213:2004 (Shift_JIS-2004, EUC-JP-2004, ISO-2022-JP-2004),
311: MacJapanese (Shift_JIS), gb18030.
312:
313: - Added encode and decode in hex format to mb_encode_numericentity() and
314: mb_decode_numericentity().
315:
316: - Added support for SORT_NATURAL and SORT_FLAG_CASE in array sort functions:
317: sort(), rsort(), ksort(), krsort(), asort(), arsort() and array_multisort().
318:
319: - is_a() and is_subclass_of() now have third boolean parameter, which specifies
320: if the first argument can be a string class name. Default if false for is_a
321: and true for is_subclass_of() for BC reasons.
322:
323: - ob_start() will now treat a chunk size of 1 as meaning 1 byte, rather than
324: the previous special case behavior of treating it as 4096 bytes.
325:
326: - idn_to_ascii() and idn_to_utf8() now take two extra parameters, one indicating
327: the variant (IDNA 2003 or UTS #46) and another, passed by reference, to return
328: details about the operation in case UTS #46 is chosen.
329:
330: - gzencode() used with FORCE_DEFLATE now generates RFC1950 compliant data.
331:
332: - ob_start() no longer starts multiple output buffers when passed
333: array("callback1", "callback2", "callback3", ...).
334:
335: ==============================
336: 5. Changes to existing classes
337: ==============================
338:
339: - Classes that implement stream wrappers can define a method called
340: stream_truncate that will respond to truncation, e.g. through ftruncate.
341: Strictly speaking, this is an addition to the user-space stream wrapper
342: template, not a change to an actual class.
343:
344: - Classes that implement stream wrappers can define a method called
345: stream_metadata that will be called on touch(), chmod(), chgrp(), chown().
346:
347: - Arrays cast from SimpleXMLElement now always contain all nodes instead of
348: just the first matching node.
349:
350: - All SimpleXMLElement children are now always printed when using var_dump(),
351: var_export(), and print_r().
352:
353: - Added iterator support in MySQLi. mysqli_result implements Traversable.
354:
355: ==============================
356: 6. Changes to existing methods
357: ==============================
358:
359: - DateTime::parseFromFormat() now has a "+" modifier to allow trailing text in
360: the string to parse without throwing an error.
361:
362: - Added the ability to pass options to DOMDocument::loadHTML().
363:
364: - FilesystemIterator, GlobIterator and (Recursive)DirectoryIterator now use
365: the default stream context.
366:
367: ===========================
368: 7. Deprecated Functionality
369: ===========================
370:
371: - The following functions are deprecated in PHP 5.4:
372: - mcrypt_generic_end(): use mcrypt_generic_deinit() instead
373: - mysql_list_dbs()
374:
375: ========================
376: 8. Removed Functionality
377: ========================
378:
379: a. Removed features
380:
381: The following features have been removed from PHP 5.4:
382:
383: - Magic quotes
384: - Register globals
385: - Safe mode
386: - Session extension bug compatibility mode
387: - Y2K compliance mode
388:
389: b. Removed functions
390:
391: The following functions are no longer available in PHP 5.4:
392:
393: - define_syslog_variables()
394: - import_request_variables()
395: - session_is_registered()
396: - session_register()
397: - session_unregister()
398: - set_magic_quotes_runtime()
399: - mysqli_bind_param() (alias of mysqli_stmt_bind_param())
400: - mysqli_bind_result() (alias of mysqli_stmt_bind_result())
401: - mysqli_client_encoding() (alias of mysqli_character_set_name())
402: - mysqli_fetch() (alias of mysqli_stmt_fetch())
403: - mysqli_param_count() (alias of mysqli_stmt_param_count())
404: - mysqli_get_metadata() (alias of mysqli_stmt_result_metadata())
405: - mysqli_send_long_data() (alias of mysqli_stmt_send_long_data())
406: - mysqli::client_encoding() (alias of mysqli::character_set_name)
407: - mysqli_stmt::stmt() (never worked/always throws, undocumented)
408:
409: c. Removed syntax
410:
411: - break $var;
412: - continue $var;
413:
414: d. Removed hash algorithms
415:
416: - Salsa10 and Salsa20, which are actually stream ciphers
417:
418: ====================
419: 9. Extension Changes
420: ====================
421:
422: a. Extensions no longer maintained
423:
424: - ext/sqlite is no longer part of the base distribution and has been moved
425: to PECL. Use sqlite3 or PDO_SQLITE instead.
426:
427: b. Extensions with changed behavior
428:
429: - The MySQL extensions (ext/mysql, mysqli and PDO_MYSQL) use mysqlnd
430: as the default library now. It is still possible to use libmysql by
431: specifying a path to the configure options.
432:
433: - PDO_MYSQL: Support for linking with MySQL client libraries older
434: than 4.1 is removed.
435:
436: - The session extension now can hook into the file upload feature
437: in order to provide upload progress information through session
438: variables.
439:
440: - SNMP extension
441: - Functions in SNMP extension now returns FALSE on every error
442: condition including SNMP-related (no such instance, end of MIB,
443: etc). Thus, in patricular, breaks previous behavior of get/walk
444: functions returning an empty string on SNMP-related errors.
445: - Multi OID get/getnext/set queries are now supported.
446: - New constants added for use in snmp_set_oid_output_format()
447: function.
448: - Function snmp_set_valueretrieval() changed it's behavior:
449: SNMP_VALUE_OBJECT can be combined with one of
450: SNMP_VALUE_PLAIN or SNMP_VALUE_LIBRARY resulting OID value
451: changes. When no SNMP_VALUE_PLAIN or SNMP_VALUE_LIBRARY
452: is supplied with SNMP_VALUE_OBJECT, SNMP_VALUE_LIBRARY is used.
453: Prior to 5.4.0 when no SNMP_VALUE_PLAIN or SNMP_VALUE_LIBRARY
454: was supplied with SNMP_VALUE_OBJECT, SNMP_VALUE_PLAIN was used.
455: - Added feature-rich OO API (SNMP class)
456: - Dropped UCD-SNMP compatibility code. Consider upgrading to
457: net-snmp v5.3+. Net-SNMP v5.4+ is required for Windows version.
458: - In sake of adding support for IPv6 DNS name resolution of
459: remote SNMP agent (peer) is done by extension now, not by Net-SNMP
460: library anymore.
461:
462: - Date extension
463: - Setting the timezone with the TZ environment variable is no longer
464: supported, instead date.timezone and/or date_default_timezone_set()
465: have to be used.
466: - The extension will no longer guess the default timezone if none
467: is set with date.timezone and/or date_default_timezone_set().
468: Instead it will always fall back to "UTC".
469:
470: - Hash extension
471: - the output of the tiger hash family has been corrected, see
472: https://bugs.php.net/61307
473:
474: ===========================
475: 10. Changes in SAPI support
476: ===========================
477:
478: - A REQUEST_TIME_FLOAT value returns a floating point number indicating the
479: time with microsecond precision. All SAPIs providing this value should be
480: returning float and not time_t.
481:
482: - apache_child_terminate(), getallheaders(), apache_request_headers()
483: and apache_response_headers() are now supported on FastCGI.
484:
485: - The interactive shell allows a shortcut #inisetting=value to change php.ini
486: settings at run-time.
487:
488: - The interactive shell now works with the shared readline extension.
489:
490: - The interactive shell no longer terminates on fatal errors.
491:
492: - A new PHP CLI command line option --rz <name> shows information about the
493: named Zend extension.
494:
495: ===================
496: 11. Windows support
497: ===================
498:
499: - is_link now works properly for symbolic links on Windows Vista
500: or later. Earlier systems do not support symbolic links.
501:
502: ==================
503: 12. New in PHP 5.4
504: ==================
505:
506: a. New Features
507:
508: - A built-in CLI web server for testing purposes is now available:
509: $ php -S 127.0.0.1:8888
510:
511: - File Upload Progress support is implemented in the Session extension.
512:
513: b. Syntax additions
514:
515: - Traits:
516: trait HelloWorld {
517: public function sayHello() {
518: echo 'Hello World!';
519: }
520: }
521:
522: class CanIGetHello {
523: use HelloWorld;
524: }
525:
526: $hello = new CanIGetHello();
527: $hello->sayHello();
528:
529: - Function call result array access, e.g.:
530: foo()[0]
531: $foo->bar()[0]
532:
533: - Callable typehint indicating argument must be callable:
534: function foo(callable $do) {
535: }
536: foo("strcmp");
537: foo(function() {});
538: $o = new ArrayObject();
539: foo(array($o, "count"));
540:
541: - Short array syntax:
542: $a = [1, 2, 3, 4];
543: $a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4];
544: $a = ['one' => 1, 2, 'three' => 3, 4];
545:
546: - Binary number format:
547: 0b00100 0b010101
548:
549: - Chained string array offsets now work.
550: $a = "abc";
551: echo $a[0][0];
552:
553: - Anonymous functions now support using $this and class scope.
554: Anonymous function can be declared as "static" to ignore the scope.
555:
556: - Class::{expr}() syntax is now supported:
557: class A {
558: static function foo() {
559: echo "Hello world!\n";
560: }
561: }
562: $x = "f";
563: $y = "o";
564: A::{$x.$y.$y}();
565:
566: - Class member access on instantiation:
567: (new foo)->method()
568: (new foo)->property
569: (new foo)[0]
570:
571:
572: c. New functions
573:
574: - Core:
575: - get_declared_traits()
576: - getimagesizefromstring()
577: - hex2bin()
578: - header_register_callback()
579: - http_response_code()
580: - stream_set_chunk_size()
581: - socket_import_stream()
582: - trait_exists()
583:
584: - Intl:
585: - transliterator_create()
586: - transliterator_create_from_rules()
587: - transliterator_create_inverse()
588: - transliterator_get_error_code()
589: - transliterator_get_error_message()
590: - transliterator_list_ids()
591: - transliterator_transliterate()
592:
593: - LDAP:
594: - ldap_control_paged_result()
595: - ldap_control_paged_result_response()
596:
597: - libxml:
598: - libxml_set_external_entity_loader()
599:
600: - mysqli:
601: - mysqli_error_list()
602: - mysqli_stmt_error_list()
603:
604: - Session:
605: - session_register_shutdown()
606: - session_status()
607:
608: - SPL
609: - class_uses()
610:
611: d. New global constants
612:
613: - CURLOPT_MAX_RECV_SPEED_LARGE
614: - CURLOPT_MAX_SEND_SPEED_LARGE
615: - ENT_DISALLOWED
616: - ENT_HTML401
617: - ENT_HTML5
618: - ENT_SUBSTITUTE
619: - ENT_XHTML
620: - ENT_XML1
621: - IPPROTO_IP
622: - IPPROTO_IPV6
623: - IPV6_MULTICAST_HOPS
624: - IPV6_MULTICAST_IF
625: - IPV6_MULTICAST_LOOP
626: - IP_MULTICAST_IF
627: - IP_MULTICAST_LOOP
628: - IP_MULTICAST_TTL
629: - JSON_BIGINT_AS_STRING
630: - JSON_OBJECT_AS_ARRAY
631: - JSON_PRETTY_PRINT
632: - JSON_UNESCAPED_SLASHES
633: - JSON_UNESCAPED_UNICODE
634: - LIBXML_HTML_NODEFDTD
635: - LIBXML_HTML_NOIMPLIED
636: - LIBXML_PEDANTIC
637: - MCAST_JOIN_GROUP
638: - MCAST_LEAVE_GROUP
639: - MCAST_BLOCK_SOURCE
640: - MCAST_UNBLOCK_SOURCE
641: - MCAST_JOIN_SOURCE_GROUP
642: - MCAST_LEAVE_SOURCE_GROUP
643: - OPENSSL_CIPHER_AES_128_CBC
644: - OPENSSL_CIPHER_AES_192_CBC
645: - OPENSSL_CIPHER_AES_256_CBC
646: - OPENSSL_RAW_DATA
647: - OPENSSL_ZERO_PADDING
648: - PHP_OUTPUT_HANDLER_CLEAN
649: - PHP_OUTPUT_HANDLER_CLEANABLE
650: - PHP_OUTPUT_HANDLER_DISABLED
651: - PHP_OUTPUT_HANDLER_FINAL
652: - PHP_OUTPUT_HANDLER_FLUSH
653: - PHP_OUTPUT_HANDLER_FLUSHABLE
654: - PHP_OUTPUT_HANDLER_REMOVABLE
655: - PHP_OUTPUT_HANDLER_STARTED
656: - PHP_OUTPUT_HANDLER_STDFLAGS
657: - PHP_OUTPUT_HANDLER_WRITE
658: - PHP_QUERY_RFC1738
659: - PHP_QUERY_RFC3986
660: - PHP_SESSION_ACTIVE
661: - PHP_SESSION_DISABLED
662: - PHP_SESSION_NONE
663: - SCANDIR_SORT_ASCENDING
664: - SCANDIR_SORT_DESCENDING
665: - SCANDIR_SORT_NONE
666: - SORT_FLAG_CASE
667: - SORT_NATURAL
668: - STREAM_META_ACCESS
669: - STREAM_META_GROUP
670: - STREAM_META_GROUP_NAME
671: - STREAM_META_OWNER
672: - STREAM_META_OWNER_NAME
673: - STREAM_META_TOUCH
674: - T_CALLABLE
675: - T_INSTEADOF
676: - T_TRAIT
677: - T_TRAIT_C
678: - ZLIB_ENCODING_DEFLATE
679: - ZLIB_ENCODING_GZIP
680: - ZLIB_ENCODING_RAW
681: - U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR
682: - IDNA_CHECK_BIDI
683: - IDNA_CHECK_CONTEXTJ
684: - IDNA_NONTRANSITIONAL_TO_ASCII
685: - IDNA_NONTRANSITIONAL_TO_UNICODE
686: - INTL_IDNA_VARIANT_2003
687: - INTL_IDNA_VARIANT_UTS46
688: - IDNA_ERROR_EMPTY_LABEL
689: - IDNA_ERROR_LABEL_TOO_LONG
690: - IDNA_ERROR_DOMAIN_NAME_TOO_LONG
691: - IDNA_ERROR_LEADING_HYPHEN
692: - IDNA_ERROR_TRAILING_HYPHEN
693: - IDNA_ERROR_HYPHEN_3_4
694: - IDNA_ERROR_LEADING_COMBINING_MARK
695: - IDNA_ERROR_DISALLOWED
696: - IDNA_ERROR_PUNYCODE
697: - IDNA_ERROR_LABEL_HAS_DOT
698: - IDNA_ERROR_INVALID_ACE_LABEL
699: - IDNA_ERROR_BIDI
700: - IDNA_ERROR_CONTEXTJ
701:
702: e. New classes
703:
704: - Reflection:
705: - ReflectionZendExtension
706:
707: - Intl:
708: - Transliterator
709: - Spoofchecker
710:
711: - JSON:
712: - JsonSerializable
713:
714: - Session:
715: - SessionHandler
716:
717: - SNMP:
718: - SNMP
719:
720: - SPL:
721: - CallbackFilterIterator
722: - RecursiveCallbackFilterIterator
723:
724: f. New methods
725:
726: - Closure:
727: - Closure::bind()
728: - Closure::bindTo()
729:
730: - Reflection:
731: - ReflectionClass::getTraitAliases()
732: - ReflectionClass::getTraitNames()
733: - ReflectionClass::getTraits()
734: - ReflectionClass::isCloneable()
735: - ReflectionClass::isTrait()
736: - ReflectionClass::newInstanceWithoutConstructor()
737: - ReflectionExtension::isPersistent()
738: - ReflectionExtension::isTemporary()
739: - ReflectionFunction::getClosure()
740: - ReflectionFunction::getClosureScopeClass()
741: - ReflectionFunction::getClosureThis()
742: - ReflectionFunctionAbstract::getClosureScopeClass()
743: - ReflectionFunctionAbstract::getClosureThis()
744: - ReflectionMethod::getClosure()
745: - ReflectionMethod::getClosureScopeClass()
746: - ReflectionMethod::getClosureThis()
747: - ReflectionObject::getTraitAliases()
748: - ReflectionObject::getTraitNames()
749: - ReflectionObject::getTraits()
750: - ReflectionObject::isCloneable()
751: - ReflectionObject::isTrait()
752: - ReflectionObject::newInstanceWithoutConstructor()
753: - ReflectionParameter::canBePassedByValue()
754: - ReflectionParameter::isCallable()
755:
756: - PDO_DBLIB:
757: - PDO::newRowset()
758:
759: - SPL:
760: - DirectoryIterator::getExtension()
761: - RegexIterator::getRegex()
762: - SplDoublyLinkedList::serialize()
763: - SplDoublyLinkedList::unserialize()
764: - SplFileInfo::getExtension()
765: - SplFileObject::fputcsv()
766: - SplObjectStorage::getHash()
767: - SplQueue::serialize
768: - SplQueue::unserialize
769: - SplStack::serialize
770: - SplStack::unserialize
771: - SplTempFileObject::fputcsv
772:
773: - XSLT:
774: - XsltProcessor::setSecurityPrefs()
775: - XsltProcessor::getSecurityPrefs()
776:
777: - Zlib:
778: - zlib_decode()
779: - zlib_encode()
780:
781: g. New Hash algorithms
782:
783: - fnv132
784: - fnv164
785: - joaat
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>