Novas funcionalidades
Novo tipo: object
Um novo tipo, object, foi introduzido e pode ser usado para
tipagem de parâmetro (contravariante) e tipagem de retorno (covariante) de qualquer
objeto.
Carregamento de extensão por nome
Extensões compartilhadas não requerem mais que as extensões de arquivo
(.so
para Unix ou .dll
para Windows) sejam
especificadas. Isto está habilitado no arquivo php.ini, assim como na função
dl().
Substituição de método abstrato
Métodos abstratos agora podem ser substituídos quando uma classe abstrata estende
outra classe abstrata.
Sodium agora é uma extensão do núcleo
A moderna biblioteca de criptografia Sodium agora se tornou uma extensão do núcleo do PHP.
Para uma referência completa da função consulte o capítulo
Sodium.
Hash de senha com Argon2
Argon2 foi adicionado à API de hash de senha,
onde as seguintes constantes foram expostas:
-
PASSWORD_ARGON2I
-
PASSWORD_ARGON2_DEFAULT_MEMORY_COST
-
PASSWORD_ARGON2_DEFAULT_TIME_COST
-
PASSWORD_ARGON2_DEFAULT_THREADS
Tipos estendidos de strings para PDO
O tipo string da PDO foi estendido para suportar o tipo de caractere nacional
ao emular preparações. Isto foi feito com as seguintes constantes:
-
PDO::PARAM_STR_NATL
-
PDO::PARAM_STR_CHAR
-
PDO::ATTR_DEFAULT_STR_PARAM
Estas constantes são utilizadas com a operação binária OR
entre elas e a constante
PDO::PARAM_STR
:
Informação adicional de depuração de preparações emuladas para PDO
O método PDOStatement::debugDumpParams() foi atualizado
para incluir o SQL enviado ao BD, onde a consulta completa, crua,
(incluindo os marcadores substituídos com seus valores vinculados) será
mostrada. Isto foi adicionado para ajudar na depuração de preparações emuladas (e por isso
só estará disponível se preparações emuladas estiverem habilitadas).
Suporte para operações estendidas em LDAP
Suporte para EXOP foi adicionado à extensão LDAP. Isto foi feito pela
exposição das seguintes funções e contantes:
Adição de informação de endereço à extensão Sockets
A extensão sockets agora tem a capacidade de procurar por Informação de Endereço, assim
como se conectar, vincular e explicar. As quatro funções a seguir
foram adicionadas para isto:
Ampliação de tipo de parâmetro
Tipos de parâmetro de métodos substituídos e de implementações de interface
agora podem ser omitidos. Isto ainda está conforme LSP, já que os tipos
de parâmetros são contravariantes.
Permite-se uma vírgula no final de espaços de nomes agrupados
Uma vírgula agora pode ser adicionada ao final do grupo na sintaxe 'use' introduzida
no PHP 7.0.
Suporte à ordem de bytes nas funções pack() e unpack()
As funções pack() e unpack() agora suportam
tipos 'float' e 'double' em ambas as ordens de bytes Little Endian e Big Endian.
Melhorias à extensão EXIF
A extensão EXIF foi atualizada para suportar uma faixa de formatos bem maior. Isto
significa que suas etiquetas específicas de formatação agora são adequadamente traduzidas ao analisar
imagens com a função exif_read_data(). Os formatos a seguir agora são
suportados:
-
Samsung
-
DJI
-
Panasonic
-
Sony
-
Pentax
-
Minolta
-
Sigma/Foveon
-
AGFA
-
Kyocera
-
Ricoh
-
Epson
As funções EXIF exif_read_data() e exif_thumbnail()
agora suportam fluxos como seu primeiro argumento.
Novas funcionalidades em PCRE
-
O modificador
J
para configurar PCRE_DUPNAMES foi adicionado.
SQLite3 permite escrever BLOBs
SQLite3::openBlob() agora permite abrir campos BLOB fields em
modo de escrita; anteriormente apenas leitura era suportada.
Chamadas TAF (Transparent Application Failover) do Oracle OCI8
Suporte às chamadas de Falha Transparente de Aplicação do Banco de Dados Oracle
foi adicionado. TAF permite que aplicações OCI8 do PHP OCI8 se
reconectem automaticamente a um banco de dados pré-configurado quando uma conexão
é perdida. O novo suporte à chamada TAF permite que aplicações PHP
monitorem e controlem a reconexão durante a falha.
Melhorias à extensão ZIP
Suporte foi adicionado a leitura e escrita de arquivos criptografados (requer libzip 1.2.0).
A classe ZipArchive agora implementa a interface
Countable.
O fluxo zip://
agora aceita uma opção de contexto 'password'
.