Pular para o conteúdo

Baixar PHP grátis – 8.4.1

Tempo de leitura: 5 minutos

PHP é uma linguagem de script de servidor de uso geral de código aberto, originalmente projetada para desenvolvimento da Web para produzir páginas da Web dinâmicas. É uma das primeiras linguagens de script do lado do servidor desenvolvidas a ser incorporada em um documento de origem HTML, em vez de chamar um arquivo externo para processar dados. O código é interpretado por um servidor Web com um módulo processador PHP que gera a página Web resultante. Ele também evoluiu para incluir um recurso de interface de linha de comando e pode ser usado em aplicativos gráficos independentes.

Se você é novo no PHP e deseja ter uma ideia de como ele funciona, experimente o tutorial introdutório.

Depois disso, confira o manual online.

O que há de novo

PHP 8.4 é uma grande atualização da linguagem PHP. Ele contém muitos recursos novos, como ganchos de propriedade, visibilidade assimétrica, uma API DOM atualizada, melhorias de desempenho, correções de bugs e limpeza geral.

Esta versão marca o último lançamento secundário da linguagem PHP.

O PHP 8.4 vem com inúmeras melhorias e novos recursos, como:

  • Ganchos de propriedade
  • Visibilidade de propriedade assimétrica
  • Objetos preguiçosos
  • Subclasses específicas do driver PDO
  • Tipo de objeto BCMath
  • E muito mais…

BcMatemática:

  • (RFC) Adicione bcfloor, bcceil e bcround ao BCMath.
  • Melhore o desempenho.
  • Ajuste o parâmetro $mode de bcround() para aceitar apenas a enumeração RoundingMode.
  • Corrigido LONG_MAX na extensão BCMath.
  • Corrigido bcdiv() div por um.
  • (RFC) Suporta tipos de objetos no BCMath.
  • melhoria de desempenho do bcpow().
  • ext/bcmath: verifica se há estouro de escala.
  • (RFC) ext/bcmath: Adicionado bcdivmod.
  • Correção GH-15968 (evite converter objetos em strings em cálculos de operadores).
  • Bug GH-16265 corrigido (Adicionado caso de retorno antecipado quando o resultado é 0) (Saki Takamachi).
  • Bug corrigido GH-16262 (corrigido um bug onde size_t transbordava) (Saki Takamachi).
  • Corrigido GH-16236 (corrigido um bug em BcMath\Number::pow() e bcpow() ao aumentar potências negativas de 0) (Saki Takamachi).

Essencial:

  • Adicionada implementação zend_call_stack_get para NetBSD, DragonFlyBSD, Solaris e Haiku.
  • Habilitadas verificações ifunc no FreeBSD a partir das versões 12.x.
  • Alterado o tipo de constantes PHP_DEBUG e PHP_ZTS para bool.
  • Corrigido o bug GH-13142 (o nome da variável indefinida é abreviado quando contém \0).
  • Corrigido o bug GH-13178 (posições do iterador incorretas ao converter array compactado em hash).
  • Corrigida a construção de fibra Zend para o modo padrão do Solaris (32 bits).
  • Tamanho da pilha de chamadas zend corrigido para macOs/arm64.
  • Adicionado suporte para Zend Max Execution Timers no FreeBSD.
  • Certifique-se de que a pilha de fibra não seja suportada por THP.
  • Implemente GH-13609 (objeto empacotado de despejo na classe WeakReference).
  • Adicionado suporte de montagem de arco sparc64 para fibra zend.
  • Corrigido GH-13581 sem espaço disponível para TLS no NetBSD.
  • Adicionado suporte de fibra Sys-V loongarch64.
  • Nomes de fechamento ajustados para incluir o nome da função pai.
  • Melhore a aleatoriedade dos nomes dos arquivos enviados e dos arquivos criados por tempnam().
  • Adicionados retornos de chamada gc e shutdown aos manipuladores personalizados zend_mm.
  • Corrigido bug GH-14650 (Calcule o tamanho das páginas antes de alocar memória).
  • Bug GH-11928 corrigido (o –enable-re2c-cgoto não adiciona o sinalizador -g).
  • Adicionado o atributo #(\Deprecated).
  • Corrigido GH-11389 (Permitir suspensão de fibras em destruidores).
  • Bug GH-14801 corrigido (compilação corrigida para armv7).
  • RFC de ganchos de propriedade implementados.
  • Correção GH-14978 (a extensão xmlreader phpize build).
  • Lançar exceção de erro ao encontrar recursão durante a comparação, em vez de erro fatal.
  • Adicionada inclusão cstddef ausente para compilações C++.
  • Scripts do sistema de compilação atualizados config.guess para 27/07/2024 e config.sub para 27/05/2024.
  • Bug GH-15240 corrigido (recursão infinita no gancho de característica).
  • Bug GH-15140 corrigido (verificação de variação ausente para conjunto abstrato com tipo assimétrico).
  • Bug GH-15181 corrigido (o manipulador de saída desativado é liberado novamente).
  • Passar E_USER_ERROR para trigger_error() agora está obsoleto.
  • Bug GH-15292 corrigido (a detecção AVX dinâmica está quebrada para MSVC).
  • Usar “_” como nome de classe agora está obsoleto.
  • Sair de um namespace agora limpa os símbolos vistos.
  • As construções da linguagem exit (e die) agora se comportam mais como uma função. Eles podem receber callables semelhantes, são afetados pela instrução strict_types declare e agora executam as coerções de tipo usuais em vez de converter qualquer valor não inteiro em uma string. Como tal, passar tipos inválidos para exit/die agora pode resultar no lançamento de um TypeError.
  • Bug GH-15438 corrigido (ganchos em propriedades promovidas pelo construtor sem visibilidade são ignorados).
  • Bug GH-15419 corrigido (verificação de incompatibilidade somente leitura + gancho ausente para classes somente leitura).
  • Bug GH-15187 corrigido (vários problemas de iterador de objeto viciado).
  • Corrigido bug GH-15456 (Crash em get_class_vars() em propriedades virtuais).
  • Bug corrigido GH-15501 (Windows HAVE_
    _H macros definidas como 1 ou indefinidas).
  • Implementada visibilidade assimétrica para propriedades.
  • Corrigido bug GH-15644 (Visibilidade assimétrica não funciona com ganchos).
  • RFC de objetos preguiçosos implementado.
  • Bug GH-15686 corrigido (Construindo iconv compartilhado com biblioteca iconv externa).
  • Corrigido erro ausente ao adicionar visibilidade assimétrica à propriedade virtual unilateral.
  • Bug GH-15693 corrigido (inclusão desnecessária no binário main.c bloats).
  • Bug GH-15731 corrigido (a validação de AllowDynamicProperties deve apresentar erro em enums).
  • Corrigido bug GH-16040 (Use-after-free de objeto liberado no gancho).
  • Corrigido bug GH-16026 (Reutilização de fibra dtor durante desligamento).
  • Bug GH-15999 corrigido (falha de asserção zend_std_write_property() com objetos lentos).
  • Bug GH-15960 corrigido (casos extremos de Foreach com objetos preguiçosos).
  • Bug GH-16185 corrigido (vários problemas de iterador de objeto viciado).
  • Bug OSS-Fuzz #371445205 corrigido (Heap-use-after-free em attr_free).
  • Corrigido erro ausente ao adicionar visibilidade assimétrica a propriedades estáticas.
  • Bug OSS-Fuzz #71407 corrigido (desreferência nula WRITE em zend_lazy_object_clone).
  • Bug GH-16574 corrigido (mensagens de erro “método indefinido” incorretas).
  • Bug corrigido GH-16577 (EG(strtod_state).freelist vaza com opcache.preload).
  • Corrigido bug GH-16615 (falha de asserção em zend_std_read_property).
  • Bug GH-16342 corrigido (adicionado ReflectionProperty::isLazy()).
  • Bug GH-16725 corrigido (verificação de acesso incorreta para adereços não conectados no iterador de objeto conectado).

Enrolar:

  • A constante CURLOPT_BINARYTRANSFER foi descontinuada.
  • A versão necessária do libcurl foi alterada para 7.61.0.
  • Adicionada chave feature_list ao valor de retorno curl_version().
  • Adicionadas constantes CURL_HTTP_VERSION_3 (libcurl 7.66) e CURL_HTTP_VERSION_3ONLY (libcurl 7.88) como opções para CURLOPT_HTTP_VERSION (Ayesh Karunaratne)
  • Adicionado CURLOPT_TCP_KEEPCNT para definir o número de testes a serem enviados antes de interromper a conexão.
  • Adicionada opção Curl CURLOPT_PREREQFUNCTION para definir um retorno de chamada personalizado após a conexão ser estabelecida, mas antes da solicitação ser executada.
  • Adicionado CURLOPT_SERVER_RESPONSE_TIMEOUT, anteriormente conhecido como CURLOPT_FTP_RESPONSE_TIMEOUT.
  • A opção CURLOPT_DNS_USE_GLOBAL_CACHE agora é ignorada silenciosamente.
  • Adicionado CURLOPT_DEBUGFUNCTION como uma opção Curl.
  • Bug GH-16359 corrigido (travamento com curl_setopt* CURLOPT_WRITEFUNCTION sem retorno de chamada nulo).
  • Bug GH-16723 corrigido (problemas de CURLMOPT_PUSHFUNCTION).

Data:

  • Adicionado DateTime(Imutável)::createFromTimestamp.
  • Adicionado DateTime(Imutável)::(get|set)Microssegundo.
  • As constantes SUNFUNCS_RET_TIMESTAMP, SUNFUNCS_RET_STRING e SUNFUNCS_RET_DOUBLE agora estão obsoletas.
  • Corrigido bug GH-13773 (DatePeriod não leva em consideração microssegundos para data de término).

DBA:

  • Passar nulo ou falso para dba_key_split() está obsoleto.

Depuração:

  • Bug corrigido GH-15923 (GDB: exceção Python : as exceções devem derivar de BaseException).

DOM:

  • Adicionado DOMNode::compareDocumentPosition().
  • Implemente #53655 (Melhore a velocidade de DOMNode::C14N() em documentos XML grandes).
  • Correção do atributo de clonagem com espaço para nome desaparecendo.
  • Implemente RFC de análise e serialização de DOM HTML5.
  • Corrigir DOMElement->prefix com string vazia cria prefixo falso.
  • Lide com OOM de forma mais consistente.
  • Implementado RFC “Melhorar retornos de chamada em ext/dom e ext/xsl”.
  • Adicionado método estático DOMXPath::quote().
  • RFC de conformidade com especificações ext/dom de aceitação implementada.
  • Bug #79701 corrigido (getElementById não funciona corretamente com definições duplicadas).
  • Implementado RFC “Novos recursos ext-dom no PHP 8.4”.
  • Corrigido GH-14698 (segfault na desreferência do nó DOM).
  • Melhore o suporte para elementos de modelo.
  • Corrigir vazamento de trampolim em callables XPath.
  • Jogue em vez de falhar silenciosamente ao criar um nó de texto muito longo em (DOM)ParentNode e (DOM)ChildNode.
  • Corrigido bug GH-15192 (falha de segmentação na extensão dom (html5_serializer)).
  • Constante DOM_PHP_ERR obsoleta.
  • Removido DOMImplementation::getFeature().
  • Bug GH-15331 corrigido (falha no teste Element::$substitutedNodeValue).
  • Corrigido bug GH-15570 (falha de segmentação (ponteiro nulo de acesso) em ext/dom/html5_serializer.c).
  • Corrigido bug GH-13988 (Armazenar DOMElement consome 4 vezes mais memória no PHP 8.1 do que no PHP 8.0).
  • Corrija a errata do serializador XML: a serialização xmlns=”” deve ser permitida.
  • Bug GH-15910 corrigido (falha de declaração em ext/dom/element.c).
  • Corrija a desconfiguração das propriedades do DOM.
  • Bug GH-16190 corrigido (usar reflexão para chamar Dom\Node::__construct causa falha na asserção).
  • Corrija casos extremos na decodificação de análise de DOM.
  • Bug GH-16465 corrigido (estouro de buffer de heap em DOMNode->getElementByTagName).
  • Corrigido bug GH-16594 (falha de asserção no DOM -> antes).

Leia as notas de lançamento completas aqui.