Nuevas características
Nuevo tipo de objeto
Se ha introducido un nuevo tipo, object, que puede ser usado para
el tipado de parámetros (contravariante) y el tipado de retorno (covariante) de cualquier
objeto.
Carga de extensiones por nombre
Las extensiones compartidas ya no requieren que se especifique su extensión de archivo
(.so
para Unix o .dll
para Windows) para
ser cargadas. Esto está habilitado en el archivo php.ini, así como en la
función dl().
Sobrescribir métodos abstractos
Ahora los métodos abstractos pueden ser sobrescritos cuando una clase abstracta extiende
otra clase abstracta.
Sodium ahora es una extensión del núcleo
La biblioteca moderna de criptografía Sodium se ha convertido en una extensión del núcleo en PHP.
Para una referencia completa de funciones, consulte el capítulo Sodium.
Hash de contraseñas con Argon2
Argon2 se ha añadido a la API de hash de contraseñas,
donde se han expuesto las siguientes constantes:
Tipos de cadena extendidos para PDO
El tipo de cadena de PDO se ha extendido para soportar el tipo de carácter nacional
cuando se emulan preparaciones. Esto se ha hecho con las siguientes constantes:
Estas constantes se utilizan mediante la combinación bit a bit OR
con
PDO::PARAM_STR
:
Información adicional de depuración para preparaciones emuladas en PDO
El método PDOStatement::debugDumpParams() ha sido
actualizado para incluir el SQL que se envía a la base de datos, donde se mostrará la consulta completa y sin procesar
(incluyendo los marcadores de posición reemplazados con sus valores vinculados). Esto se ha añadido para ayudar en la depuración de preparaciones emuladas (y por lo tanto solo estará disponible cuando las preparaciones emuladas estén activadas).
Soporte para operaciones extendidas en LDAP
Se ha añadido soporte para EXOP a la extensión LDAP. Esto se ha hecho exponiendo las siguientes funciones y constantes:
Adiciones de Información de Dirección a la extensión Sockets
La extensión de sockets ahora tiene la capacidad de buscar información de direcciones, así como conectarse a ella, enlazarse a ella y explicarla. Se han añadido las siguientes cuatro
funciones para esto:
Ampliación del tipo de parámetro
Los tipos de parámetros de métodos sobrescritos y de implementaciones de interfaces
ahora pueden ser omitidos. Esto sigue siendo conforme con LSP, ya que los tipos de parámetros son contravariantes.
Permitir una coma final para namespaces agrupados
Ahora se puede añadir una coma final a la sintaxis de uso agrupado introducida en
PHP 7.0.
Las funciones pack() y unpack() ahora
soportan float y double tanto en little endian como en big endian.
Mejoras en la extensión EXIF
La extensión EXIF se ha actualizado para soportar una gama mucho más amplia de formatos. Esto
significa que sus etiquetas específicas de formato ahora se traducen correctamente al analizar imágenes
con la función exif_read_data(). Los siguientes nuevos formatos ahora son soportados:
-
Samsung
-
DJI
-
Panasonic
-
Sony
-
Pentax
-
Minolta
-
Sigma/Foveon
-
AGFA
-
Kyocera
-
Ricoh
-
Epson
Las funciones EXIF exif_read_data() y exif_thumbnail()
ahora soportan pasar flujos como su primer argumento.
Nuevas características en PCRE
-
Se ha añadido el modificador
J
para establecer PCRE_DUPNAMES.
SQLite3 permite escribir BLOBs
SQLite3::openBlob() ahora permite abrir campos BLOB en
modo de escritura; anteriormente solo se soportaba el modo de lectura.
Mejoras en la extensión ZIP
Se ha añadido soporte de lectura y escritura para archivos cifrados (requiere libzip 1.2.0).
La clase ZipArchive ahora implementa la interfaz Countable.
El flujo zip://
ahora acepta una opción de contexto 'password'
.