PHP 8
PHP 8

PHP 8: o compilador JIT e novos recursos

Enquanto sua versão anterior já havia otimizado sua velocidade de execução, o PHP 8 visa melhorar ainda mais o desempenho. Como esta é uma nova versão principal, você certamente precisará fazer alterações em seu código para aproveitar ao máximo as alterações trazidas pelo PHP 8, mas também para corrigir alguns alertas ou erros relacionados a funções obsoletas. Deve-se notar que a maioria das mudanças importantes (funções modificadas) feitas pelo PHP 8 já estavam obsoletas nas versões 7.2, 7.3 e 7.4. Esta nova versão principal da linguagem de programação de código aberto vem com uma série de novos recursos, incluindo o compilador JIT.

Iniciando o compilador JIT com PHP 8

A principal novidade introduzida pelo PHP 8 é o compilador JIT (Just in Time). O PHP JIT agora compilará partes do código enquanto estiver em execução. Isso funcionará da mesma forma que uma versão em cache do código, o que deve melhorar significativamente o desempenho.

Propomos incluir um compilador JIT no PHP 8 e fazer um esforço extra para aumentar seu desempenho e facilidade de uso. (…) PHP JIT é implementado como parte do OPcache. Ele pode ser habilitado ou desabilitado em tempo de compilação e em tempo de execução. Quando habilitado, o código nativo de arquivos PHP é armazenado em uma região adicional de memória compartilhada OPcache e op_array→opcodes[].handler(s) mantém ponteiros para pontos de entrada de código gerado pelo compilador JIT. Esta abordagem não requer modificação do motor. (…) PHP JIT não introduz uma representação intermediária. Ele gera código nativo diretamente do bytecode PHP e informações coletadas pela estrutura de análise estática SSA.RFC .

Os novos recursos do PHP 8

Além do compilador JIT, o PHP 8 traz uma série de novidades, que o tornarão mais eficiente. Entre essas novidades, podemos destacar:

  • Tipos de união 2.0: para definir tipos de múltipla escolha para uma propriedade de classe,
  • Atributos v2: para adicionar metadados para especificar as propriedades de objetos, elementos ou arquivos,
  • WeakMaps: para economizar recursos ao manipular objetos,
  • A vírgula à direita na lista de parâmetros, incluindo funções, métodos e encerramentos,
  • A expressão  throw  : para converter esta declaração em uma expressão que pode ser usada em um contexto onde elas são permitidas,
  • Sintaxe de classe estendida a objetos: para poder recuperar o nome de classe de um determinado objeto.

Se você quiser aproveitar os novos recursos trazidos pelo PHP 8, você pode experimentar esta nova versão principal antes de adotá-la definitivamente. De qualquer forma, é recomendável manter uma versão do PHP atualizada, mesmo que seja uma versão mais antiga.

de_DE_formalGerman