Other ChangesPerformance ImprovementsPHP Core
A specialized VM opcode for the array_key_exists
function has been added, which improves performance of this function
if it can be statically resolved. In namespaced code, this may require
writing Regular Expressions (Perl-Compatible)
When preg_match in UTF-8 mode ( Changes to INI File Handlingzend.exception_ignore_args is a new INI directive for including or excluding arguments from stack traces generated from exceptions. opcache.preload_user is a new INI directive for specifying the user account under which preloading code is execute if it would otherwise be run as root (which is not allowed for security reasons). Migration to pkg-config
A number of extensions have been migrated to exclusively use pkg-config for the
detection of library dependencies. Generally, this means that instead of using
--with-foo-dir=DIR or similar only
--with-foo is used. Custom library paths can be
specified either by adding additional directories to The following extensions and SAPIs are affected:
CSV escaping
fputcsv,
fgetcsv,
SplFileObject::fputcsv,
SplFileObject::fgetcsv, and
SplFileObject::setCsvControl
now accept an empty string as The behavior of str_getcsv has been adjusted accordingly (formerly, an empty string was identical to using the default). SplFileObject::getCsvControl now may also return an empty string for the third array element, accordingly. Data FilteringThe filter extension no longer exposes --with-pcre-dir for Unix builds and can now reliably be built as shared when using ./configure GDThe behavior of imagecropauto in the bundled libgd has been synced with that of system libgd:
The default
imagescale now supports aspect ratio preserving
scaling to a fixed height by passing HASH Message Digest FrameworkThe hash extension cannot be disabled anymore and is always an integral part of any PHP build, similar to the date extension. Lightweight Directory Access ProtocolSupport for nsldap and umich_ldap has been removed. LibxmlAll libxml-based extensions now require libxml 2.7.6 or newer. Multibyte StringThe oniguruma library is no longer bundled with PHP, instead libonig needs to be available on the system. Alternatively --disable-mbregex can be used to disable the mbregex component. OPcacheThe --disable-opcache-file and --enable-opcache-file configure options have been removed in favor of the opcache.file_cache INI directive. Password Hashing
The password_hash and
password_needs_rehash functions
now accept nullable string and int for PEARInstallation of PEAR (including PECL) is no longer enabled by default. It can be explicitly enabled using --with-pear. This option is deprecated and may be removed in the future. Reflection
The numeric values of the modifier constants
( SimpleXMLSimpleXMLElement now implements Countable. SQLite3The 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. Serialization and unserialization of SQLite3, SQLite3Stmt and SQLite3Result is now explicitly forbidden. Formerly, serialization of instances of these classes was possible, but unserialization yielded unusable objects.
The ZipThe bundled libzip library has been removed. A system libzip >= 0.11 is now necessary to build the zip extension. |