Новые возможности
Новый тип object
Был введён новый тип, object, который может использоваться в
передаваемых параметрах (контравариантность) и возвращаемых значениях (ковариантность)
для любых объектов.
Загрузка модуля по имени
Для подгружаемых модулей больше не требуется указание расширения файла
(.so
для Unix или .dll
для Windows).
Это допускается в файле php.ini, а также в функции dl().
Разрешено переопределение абстрактных методов
Абстрактные методы теперь можно переопределить, в случаях когда абстрактный класс
наследуется от другого абстрактного класса.
Sodium теперь является основным модулем
Современная криптографическая библиотека Sodium теперь стала основным модулем
в PHP (как модуль sodium).
Смотрите раздел Sodium для получения полной информации.
Добавлено хеширование пароля с помощью Argon2
Был добавлен алгоритм Argon2 в API хеширования пароля, где доступны следующие константы:
-
PASSWORD_ARGON2I
-
PASSWORD_ARGON2_DEFAULT_MEMORY_COST
-
PASSWORD_ARGON2_DEFAULT_TIME_COST
-
PASSWORD_ARGON2_DEFAULT_THREADS
Расширенные типы строк для PDO
Тип строки PDO был расширен для поддержки национальных наборов символов
при эмуляции подготавливаемых запросов. Добавлены новые константы:
-
PDO::PARAM_STR_NATL
-
PDO::PARAM_STR_CHAR
-
PDO::ATTR_DEFAULT_STR_PARAM
Эти константы используется в побитовом OR
с константой PDO::PARAM_STR
:
Дополнительная отладочная информация при эмуляции подготавливаемых запросов в PDO
Метод PDOStatement::debugDumpParams() был обновлён,
чтобы включить SQL до отправки в БД, где будет показан полный
необработанный запрос (включая заменённые параметры с их связанными значениями).
Это было добавлено для помощи в отладке эмуляции подготавливаемых запросов
(и поэтому это будет доступно только при включённой эмуляции подготавливаемых запросов).
Поддержка расширенных операций в LDAP
Была добавлена поддержка EXOP в модуль LDAP. Стали доступны следующие функции и константы:
Информация об адресе в модуле сокетов
Модуль сокетов теперь имеет возможность искать адресную информацию,
а также подключаться к ней, связываться с ней и объяснять её. Для этого были добавлены
следующие четыре функции:
Расширение типа параметра
Типы параметров из переопределённых методов и реализаций интерфейсов теперь могут быть опущены.
Это всё ещё соответствует LSP, так как параметры типов контравариантны.
Разрешена завершающая запятая для сгруппированных пространств имён
Завершающая запятая теперь может быть добавлена в синтаксис группировки use, появившегося в
PHP 7.0.
Функции pack() и unpack() теперь поддерживают
типы float и double как в прямом, так и в обратном порядке байт.
Улучшения в модуле EXIF
Модуль EXIF обновлён для поддержки большего числа форматов. Это означает, что
специфичные теги правильно обрабатываются при разборе изображений функцией
exif_read_data(). Новые поддерживаемые форматы:
-
Samsung
-
DJI
-
Panasonic
-
Sony
-
Pentax
-
Minolta
-
Sigma/Foveon
-
AGFA
-
Kyocera
-
Ricoh
-
Epson
Функции exif_read_data() и exif_thumbnail() теперь принимают
потоки в качестве своих первых аргументов.
Новая функциональность в PCRE
-
Добавлен модификатор
J
для установки PCRE_DUPNAMES.
SQLite3 позволяет записывать BLOB
Теперь SQLite3::openBlob() умеет открывать поля типа
BLOB для записи. Раньше для таких полей было доступно только чтение.
Обратные вызовы Oracle OCI8 Transparent Application Failover
Добавлена поддержка обратных вызовов Oracle Database Transparent Application Failover (TAF). TAF позволяет приложениям PHP OCI8 автоматически переподключаться к предварительно сконфигурированной базе данных
при нарушении соединения. Новая поддержка обратного вызова TAF позволяет приложениям
отслеживать и контролировать переподключение во время восстановления.
Улучшения в модуле ZIP
Добавлена поддержка чтения и записи зашифрованных архивов (требуется libzip 1.2.0).
Класс ZipArchive теперь реализует интерфейс Countable.
Поток zip://
теперь принимает контекстную опцию 'password'
.