php-src/UPGRADING
2018-10-03 19:11:31 +02:00

123 lines
3.8 KiB
Plaintext

PHP 7.4 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
========================================
1. Backward Incompatible Changes
========================================
- Intl:
. The default parameter value of idn_to_ascii() and idn_to_utf8() is now
INTL_IDNA_VARIANT_UTS46 instead of the deprecated INTL_IDNA_VARIANT_2003.
- Reflection:
. Reflection objects will now generate an exception if an attempt is made
to serialize them. Serialization for reflection objects was never
supported and resulted in corrupted reflection objects. It has been
explicitly prohibited now.
========================================
2. New Features
========================================
- PDO_OCI:
. PDOStatement::getColumnMeta is now available
- PDO_SQLite:
. PDOStatement::getAttribute(PDO::SQLITE_ATTR_READONLY_STATEMENT) allows to
check whether this statement is read-only, i.e. whether it doesn't modify
the database.
========================================
3. Changes in SAPI modules
========================================
========================================
4. Deprecated Functionality
========================================
- Core:
. Unbinding $this of a non-static method through a combination of
ReflectionMethod::getClosure() and closure rebinding is deprecated. Doing
so is equivalent to calling a non-static method statically, which has been
deprecated since PHP 7.0.
========================================
5. Changed Functions
========================================
========================================
6. New Functions
========================================
========================================
7. New Classes and Interfaces
========================================
========================================
8. Removed Extensions and SAPIs
========================================
========================================
9. Other Changes to Extensions
========================================
- Hash:
. The hash extension cannot be disabled anymore and is always an integral
part of any PHP build, similar to the date extension.
- Intl:
. The Intl extension now requires at least ICU 50.1.
- Libxml:
. All libxml based extensions now require libxml 2.7.6 or newer.
- Reflection:
. Numeric value of class, property, function and constant modifiers was
changed. Don't filter methods and properties through
ReflectionClass::getMethods() and ReflectionClass::getProperties(), or test
results of Reflection...::getModifiers(), using hard-coded numeric values.
Use corresponding constants instead (e.g. ReflectionMethod::IS_PUBLIC).
- Zip:
. The bundled libzip library has been removed. A system libzip >= 0.11 is now
necessary to build the extension.
========================================
10. New Global Constants
========================================
========================================
11. Changes to INI File Handling
========================================
========================================
12. Windows Support
========================================
- stat:
. The stat implementation has been refactored.
- An inode number is delivered and is based on the NTFS file index.
- The device number is now based on the volume serial number.
Note, that both values derived from the system and provided as is on 64-bit
systems. On 32-bit system, these values might overflow the 32-bit integer in
PHP, so they're a fake.
========================================
13. Other Changes
========================================