mirror of
https://github.com/php/php-src.git
synced 2024-09-22 02:17:32 +00:00
947ca9f43d
Since cropping support has been added to our bundled libgd, `gdImageAutoCrop` differs from upstream in that `GD_CROP_DEFAULT` falls back on `GD_CROP_SIDES` if there is no transparent color in the image. While this difference seem to be a useful improvement in our bundled libgd, upstream has not yet signaled that there willing to back-port it[1], so we revert it to stay in sync with upstream. We also remove the additional NULL bailout at the end of the function, which doesn't appear to be relevant any longer since bug 77198 has been fixed. [1] <https://github.com/libgd/libgd/issues/298>
206 lines
6.8 KiB
Plaintext
206 lines
6.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
|
|
========================================
|
|
|
|
- Curl:
|
|
. Attempting to serialize a CURLFile class will now generate an exception.
|
|
Previously the exception was only thrown on unserialization.
|
|
|
|
- Date:
|
|
. Calling var_dump() or similar on a DateTime(Immutable) instance will no
|
|
longer leave behind accessible properties on the object.
|
|
|
|
- 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.
|
|
|
|
- PDO:
|
|
. Attempting to serialize a PDO or PDOStatement instance will now generate
|
|
an Exception rather than a PDOException, consistent with other internal
|
|
classes which do not support serialization.
|
|
|
|
- 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.
|
|
|
|
- SPL:
|
|
. Calling get_object_vars() on an ArrayObject instance will now always return
|
|
the properties of the ArrayObject itself (or a subclass). Previously it
|
|
returned the values of the wrapped array/object unless the STD_PROP_LIST
|
|
flag was specified. Other affected operations are:
|
|
|
|
* ReflectionObject::getProperties()
|
|
* reset(), current(), etc. Use Iterator methods instead.
|
|
* Potentially others working on object properties as a list.
|
|
|
|
(array) casts are *not* affected. They will continue to return either the
|
|
wrapped array, or the ArrayObject properties, depending on whether the
|
|
STD_PROP_LIST flag is used.
|
|
. SplPriorityQueue::setExtractFlags() will throw an exception if zero is
|
|
passed. Previously this would generate a recoverable fatal error on the
|
|
next extraction operation.
|
|
|
|
========================================
|
|
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
|
|
========================================
|
|
|
|
- OpenSSL:
|
|
. Added openssl_x509_verify(mixed cert, mixed key) function that verifies the
|
|
signature of the certificate using a public key. A wrapper around the
|
|
OpenSSL's X509_verify() function.
|
|
See <https://github.com/php/php-src/pull/3624>.
|
|
|
|
========================================
|
|
7. New Classes and Interfaces
|
|
========================================
|
|
|
|
========================================
|
|
8. Removed Extensions and SAPIs
|
|
========================================
|
|
|
|
========================================
|
|
9. Other Changes to Extensions
|
|
========================================
|
|
|
|
- GD:
|
|
. Freetype detection now relies on pkg-config. The --with-freetype-dir option
|
|
has been renamed to --enable-freetype and no longer accepts a directory.
|
|
Instead pkg-config environment variables can be used to configure custom paths,
|
|
see either ./configure --help or follow the instructions in error messages.
|
|
. The bundled libgd behaves now like system libgd wrt. GD_CROP_DEFAULT never
|
|
falling back to GD_CROP_SIDES.
|
|
|
|
- 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).
|
|
|
|
- SQLite3:
|
|
. The bundled libsqlite has been removed. To build the SQLite3 extension
|
|
a system libsqlite3 ≥ 3.7.4 is now required. To build the PDO_SQLite
|
|
extension a system libsqlite3 ≥ 3.5.0 is now required.
|
|
. (Un)serialization of SQLite3, SQLite3Stmt and SQLite3Result is now explictly
|
|
forbidden. Formerly, serialization of instances of these classes was
|
|
possible, but unserialization yielded unusable objects.
|
|
. The @param notation can now also be used to denote SQL query parameters.
|
|
|
|
- Zip:
|
|
. The bundled libzip library has been removed. A system libzip >= 0.11 is now
|
|
necessary to build the extension.
|
|
|
|
========================================
|
|
10. New Global Constants
|
|
========================================
|
|
|
|
- Tidy:
|
|
. TIDY_TAG_ARTICLE
|
|
. TIDY_TAG_ASIDE
|
|
. TIDY_TAG_AUDIO
|
|
. TIDY_TAG_BDI
|
|
. TIDY_TAG_CANVAS
|
|
. TIDY_TAG_COMMAND
|
|
. TIDY_TAG_DATALIST
|
|
. TIDY_TAG_DETAILS
|
|
. TIDY_TAG_DIALOG
|
|
. TIDY_TAG_FIGCAPTION
|
|
. TIDY_TAG_FIGURE
|
|
. TIDY_TAG_FOOTER
|
|
. TIDY_TAG_HEADER
|
|
. TIDY_TAG_HGROUP
|
|
. TIDY_TAG_MAIN
|
|
. TIDY_TAG_MARK
|
|
. TIDY_TAG_MENUITEM
|
|
. TIDY_TAG_METER
|
|
. TIDY_TAG_NAV
|
|
. TIDY_TAG_OUTPUT
|
|
. TIDY_TAG_PROGRESS
|
|
. TIDY_TAG_SECTION
|
|
. TIDY_TAG_SOURCE
|
|
. TIDY_TAG_SUMMARY
|
|
. TIDY_TAG_TEMPLATE
|
|
. TIDY_TAG_TIME
|
|
. TIDY_TAG_TRACK
|
|
. TIDY_TAG_VIDEO
|
|
|
|
========================================
|
|
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
|
|
========================================
|