mirror of
https://github.com/php/php-src.git
synced 2024-11-23 18:04:36 +08:00
8eee0d6130
Implement RFC https://wiki.php.net/rfc/strtolower-ascii
162 lines
5.7 KiB
Plaintext
162 lines
5.7 KiB
Plaintext
PHP 8.2 UPGRADE NOTES
|
|
|
|
1. Backward Incompatible Changes
|
|
2. New Features
|
|
3. Changes in SAPI modules
|
|
4. Deprecated Functionality
|
|
5. Changed Functions
|
|
6. New Functions
|
|
7. New Classes and Interfaces
|
|
8. Removed Extensions and SAPIs
|
|
9. Other Changes to Extensions
|
|
10. New Global Constants
|
|
11. Changes to INI File Handling
|
|
12. Windows Support
|
|
13. Other Changes
|
|
14. Performance Improvements
|
|
|
|
========================================
|
|
1. Backward Incompatible Changes
|
|
========================================
|
|
|
|
- Standard:
|
|
. strtolower() and strtoupper() are no longer locale-sensitive. They now
|
|
perform ASCII case conversion, as if the locale were "C". Use
|
|
mb_strtolower() if you want localized case conversion. Similarly, stristr,
|
|
stripos, strripos, lcfirst, ucfirst, ucwords, str_ireplace,
|
|
array_change_key_case and sorting with SORT_FLAG_CASE use ASCII case
|
|
conversion.
|
|
|
|
========================================
|
|
2. New Features
|
|
========================================
|
|
|
|
- Curl:
|
|
. Added CURLINFO_EFFECTIVE_METHOD option and returning the effective
|
|
HTTP method in curl_getinfo() return value.
|
|
|
|
- OCI8:
|
|
. Added an oci8.prefetch_lob_size directive and oci_set_prefetch_lob()
|
|
function to tune LOB query performance by reducing the number of
|
|
round-trips between PHP and Oracle Database when fetching LOBS. This is
|
|
usable with Oracle Database 12.2 or later.
|
|
|
|
- PCRE:
|
|
. Added support for the "n" (NO_AUTO_CAPTURE) modifier, which makes simple
|
|
`(xyz)` groups non-capturing. Only named groups like `(?<name>xyz)` are
|
|
capturing. This only affects which groups are capturing, it is still
|
|
possible to use numbered subpattern references, and the matches array will
|
|
still contain numbered results.
|
|
|
|
========================================
|
|
3. Changes in SAPI modules
|
|
========================================
|
|
|
|
========================================
|
|
4. Deprecated Functionality
|
|
========================================
|
|
|
|
- Core:
|
|
. Creation of dynamic properties is deprecated, unless the class opts in by
|
|
using the #[AllowDynamicProperties] attribute. stdClass allows dynamic
|
|
properties. Usage of __get()/__set() is not affected by this change. A
|
|
dynamic properties deprecation warning can be addressed by:
|
|
- Declaring the property (preferred).
|
|
- Adding the #[AllowDynamicProperties] attribute to the class (which also
|
|
applies to all child classes).
|
|
- Using a WeakMap if you wish to associate additional data with an object
|
|
you do not own.
|
|
|
|
. Callables that are not accepted by the $callable() syntax (but are accepted
|
|
by call_user_func) are deprecated. In particular:
|
|
|
|
"self::method"
|
|
"parent::method"
|
|
"static::method"
|
|
["self", "method"]
|
|
["parent", "method"]
|
|
["static", "method"]
|
|
["Foo", "Bar::method"]
|
|
[new Foo, "Bar::method"]
|
|
|
|
This does not affect normal method callables like "A::method" or
|
|
["A", "method"]. A deprecation notice is only emitted on call. Both
|
|
is_callable() and the callable type will silently accept these callables
|
|
until support for them is removed entirely.
|
|
|
|
RFC: https://wiki.php.net/rfc/deprecate_partially_supported_callables
|
|
|
|
- Mbstring:
|
|
. Use of QPrint, Base64, Uuencode, and HTML-ENTITIES 'text encodings' is
|
|
deprecated for all Mbstring functions. Unlike all the other text
|
|
encodings supported by Mbstring, these do not encode a sequence of
|
|
Unicode codepoints, but rather a sequence of raw bytes. It is not
|
|
clear what the correct return values for most Mbstring functions should
|
|
be when one of these non-encodings is specified. Further, PHP has
|
|
separate, built-in implementations of all of them; for example, UUencoded
|
|
data can be handled using convert_uuencode/convert_uudecode.
|
|
|
|
========================================
|
|
5. Changed Functions
|
|
========================================
|
|
|
|
- DBA
|
|
. dba_open() and dba_popen() now have the following enforced function signature
|
|
dba_open(string $path, string $mode, ?string $handler = null, int $permission = 0o644, int $map_size = 0)
|
|
. dba_fetch()'s optional skip argument is now at the end in line with
|
|
PHP userland semantics its signature now is:
|
|
dba_fetch(string|array $key, $dba, int $skip = 0): string|false
|
|
The overloaded signature
|
|
dba_fetch(string|array $key, $skip, $dba): string|false
|
|
is still accepted, but it is recommended to use the new standard variant.
|
|
|
|
========================================
|
|
6. New Functions
|
|
========================================
|
|
|
|
========================================
|
|
7. New Classes and Interfaces
|
|
========================================
|
|
|
|
========================================
|
|
8. Removed Extensions and SAPIs
|
|
========================================
|
|
|
|
========================================
|
|
9. Other Changes to Extensions
|
|
========================================
|
|
|
|
- OCI8:
|
|
. The minimum Oracle Client library version required is now 11.2.
|
|
|
|
- Zip:
|
|
. extension updated to 1.20.0 with new methods:
|
|
ZipArchive::clearError, getStreamName and getStreamIndex
|
|
|
|
========================================
|
|
10. New Global Constants
|
|
========================================
|
|
|
|
- COM_DOTNET:
|
|
. LOCALE_NEUTRAL
|
|
|
|
========================================
|
|
11. Changes to INI File Handling
|
|
========================================
|
|
|
|
========================================
|
|
12. Windows Support
|
|
========================================
|
|
|
|
- Core:
|
|
. Windows specific error messages are no longer localized, but instead in
|
|
English to better match PHP error messages.
|
|
|
|
========================================
|
|
13. Other Changes
|
|
========================================
|
|
|
|
========================================
|
|
14. Performance Improvements
|
|
========================================
|