- Inclui property hooks, visibilidade assimétrica, API DOM atualizada, melhorias de desempenho, correções de bugs e limpeza geral
- Fornece property hooks que oferecem suporte a propriedades computadas, compreendidas nativamente por IDEs e ferramentas de análise estática
- Introduz visibilidade assimétrica, permitindo controlar de forma independente o escopo de leitura e escrita das propriedades
- Novos recursos
- Por meio do atributo
#[\Deprecated], agora é possível aplicar o mecanismo existente de descontinuação do PHP a funções personalizadas, métodos e constantes de classe
- A nova API DOM inclui suporte compatível com os padrões para parsing de documentos HTML5 e corrige vários bugs antigos de compatibilidade nas funcionalidades do DOM
- Com o objeto
BcMath\Number, é possível tratar números de precisão arbitrária de forma orientada a objetos
- Novas funções de array, como
array_find(), array_find_key(), array_any(), array_all()
- Novas subclasses de PDO: Pdo\Dblib, Pdo\Firebird, Pdo\MySql, Pdo\Odbc, Pdo\Pgsql e Pdo\Sqlite
- Agora é possível acessar propriedades e métodos de objetos recém-instanciados sem parênteses
- Novas classes, interfaces e funções
- Novos Lazy Objects e implementação de JIT baseada no framework IR
- Adição da função
request_parse_body() e das funções bcceil(), bcdivmod(), bcfloor(), bcround()
- Adição de métodos como
DateTime::createFromTimestamp(), DateTime::getMicrosecond(), DateTime::setMicrosecond()
- Adição das funções
mb_trim(), mb_ltrim(), mb_rtrim(), mb_ucfirst(), mb_lcfirst()
- Adição das funções
pcntl_getcpu(), pcntl_getcpuaffinity(), pcntl_getqos_class(), pcntl_setns(), pcntl_waitid()
- Adição dos métodos
ReflectionClassConstant::isDeprecated(), ReflectionGenerator::isClosed(), ReflectionProperty::isDynamic()
- Adição das funções
http_get_last_response_headers(), http_clear_last_response_headers(), fpow()
- Adição dos métodos
XMLReader::fromStream(), XMLReader::fromUri(), XMLReader::fromString(), XMLWriter::toStream(), XMLWriter::toUri(), XMLWriter::toMemory()
- Adição da função
grapheme_str_split()
- Descontinuações e quebras de compatibilidade
- As extensões IMAP, OCI8, PDO_OCI e pspell foram removidas do bundle e migradas para o PECL
- Tipos de parâmetro implicitamente anuláveis foram descontinuados
- O uso de _ como nome de classe foi descontinuado
- Elevar 0 a uma potência negativa foi descontinuado
- Passar um modo inválido para
round() agora gera ValueError
- As constantes de classe das extensões agora têm tipo declarado
- A classe GMP agora é marcada como
final
- Constantes e funções relacionadas ao MYSQLI foram descontinuadas
stream_bucket_make_writeable() e stream_bucket_new() agora retornam instâncias de StreamBucket
- Alteração no comportamento de
exit()
- A constante E_STRICT foi descontinuada
- Melhorias de desempenho e sintaxe
- Melhorias de desempenho, aprimoramentos de sintaxe e maior segurança de tipos
- Recomenda-se atualizar para o PHP 8.4.
3 comentários
Graças ao WordPress e ao Laravel, é uma linguagem que pelo menos não vai morrer de fome.
É uma linguagem com a qual você não vai passar fome, mesmo que WordPress e Laravel entrem em declínio.
Comentários no Hacker News
O motivo de
$this->countryCodenão causar recursão infinita está especificado na RFC. Parece meio mágico que, no PHP, o acesso a propriedades possa ter significados diferentes dependendo do contexto.Como programador PHP, fico preocupado com a direção que o PHP está tomando. Novos recursos da linguagem aumentam a complexidade em troca de benefícios questionáveis.
Fico feliz em ver que o PHP continua prosperando. Em 2021, eu estava preocupado com a saída do Nikita Popov, mas o PHP continua sendo uma boa linguagem e ainda tem muitos desenvolvedores ativos.
O que mais me anima são os property hooks. Era um recurso do C# de que eu sentia falta.
__get()e__set(), mas era pesado e exigia muitas anotações em PHPDoc.Estava vendo sobre sobrecarga de acessadores de array quando encontrei "Property Hooks". Fiquei surpreso ao descobrir que é um recurso adicionado recentemente.
Estou satisfeito com o novo lançamento do PHP. Houve muitas melhorias, como stack traces melhores para closures, ganhos de desempenho, suporte a HTML5, lazy objects e mais.
Estou animado com os objetos de bcmath. Mais do que operadores aritméticos, gosto do fato de agora ser possível fazer verificação de tipo de dados sem classes wrapper.
Fico feliz em ver que o PHP continua evoluindo. Isso me faz lembrar de quando comecei como freelancer.
A nova função
array_finddo PHP mostra um problema de design da linguagem. Ela é parecida com aarray_searchjá existente, mas a ordem dos argumentos é diferente.Não entendo "public private(set)". "readonly public" parece mais adequado.
private(set)do Swift.