fbpx
PHP

Quais as novidades do PHP 8.0?

PHP é uma das linguagens de programação mais fáceis de aprender. Com um tutorial e a motivação certa, você pode escrever os primeiros scripts e executar comandos em poucas horas.

O PHP 8.0 é uma grande atualização da linguagem, lançada em novembro de 2020, trouxe vários novas funcionalidades e otimizações.

Neste artigo, nós explicamos alguns dos novos recursos mais relevantes. Vamos lá?

O que é PHP?

O lançamento do PHP em 1995 abriu um novo mundo de possibilidades para o desenvolvimento e design de páginas da Web, todos com níveis de escalabilidade, segurança e personalização sem precedentes. Até hoje, o PHP oferece aos desenvolvedores um ambiente de teste versátil para executar scripts do lado do servidor, scripts de linha de comando e compilações de aplicativos de desktop.

O PHP fornece a espinha dorsal para uma ampla gama de funções de aplicativos principalmente centradas na Web, como gerenciamento de conteúdo dinâmico, integração remota de banco de dados e rastreamento de sessão do usuário. Os programadores também podem usar o PHP para solicitar elementos diretamente de um servidor ou banco de dados e, em seguida, tornar esse conteúdo facilmente acessível aos usuários da web.

O PHP 8.0 estabeleceu novos paradigmas na linguagem sendo uma grande atualização. A versão trouxe mudanças que podem ser atribuídas em três categorias:

  • estratégia de execução;
  • sintaxe da linguagem;
  • novas funcionalidades.

Cada categoria tornou a linguagem muito mais avançada do que suas versões anteriores. Além disso, o PHP 8 também está se concentrando em fornecer aos desenvolvedores oportunidades para trazer mais expressão em seu código com menos codificação.

A qualidade, a funcionalidade e o desempenho dos sites criados em PHP certamente sofrerão grandes melhorias com esta atualização.

Quais são as principais novidades do PHP 8.0?

Enquanto o PHP 7 ofereceu melhorias de desempenho e segurança, o PHP 8 representa uma versão importante com novos recursos substanciais. Esses recursos incluem o compilador just-in-time (JIT), um método de argumentos nomeados, tipos de retorno estáticos, herança e extensões OPcache. Mas, não é só isso.

Compilador JIT

Para qualquer linguagem ou até mesmo aplicativos, a maior e mais atraente melhoria pode ser na velocidade e desempenho. E o novo JIT ou compilador Just-In-Time faz o mesmo para PHP.

PHP é uma linguagem interpretada, o que significa que roda em tempo real em vez de em um tempo pré-determinado após ter sido compilado. O JIT faz o PHP rodar em código compilado e isso melhora seu desempenho em certos cenários. Vamos entender isso com uma explicação cronológica das execuções do PHP antes e agora, ou seja, com o PHP 8.

Anteriormente, cada solicitação significava que o interpretador tinha que analisar, compilar e executar o código PHP cada vez separadamente. Isso exigia mais uso dos recursos da CPU e mais investimento de tempo.

Em seguida veio o pré-carregamento, um recurso implementado no OPcache no PHP 7.4. Ele forneceu um meio de armazenar conjuntos de scripts na memória do OPcache antes que qualquer código de aplicativo realmente fosse executado. No entanto, isso realmente melhorou o desempenho.

Finalmente, no PHP 8 é introduzida a compilação JIT. Nas versões anteriores, os scripts ainda precisavam ser compilados em código de máquina. A nova adição ignora essa etapa completamente. O compilador JIT traduz todas as partes do código intermediário em código de máquina, trazendo uma melhoria substancial no desempenho e na forma como a memória foi usada.

Embora o JIT já estivesse disponível em arquivos PHP desde a versão 7.4, era apenas uma ferramenta de teste sem tempo de compilação e desempenho e usabilidade só entrou em ação com a versão 8. Agora, a execução de tarefas como análise de dados, renderização 3D e IA definitivamente melhorou a experiência do desenvolvedor. Dado que muitas das contrapartes do PHP já se beneficiaram dos compiladores JIT, foi uma adição muito aguardada que abriu muitos novos horizontes para a linguagem.

Operador NULLsafe

O operador NULLsafe é a solução do PHP 8 para o incômodo de acessar dados. Quando você acessa dados que estão profundamente embutidos na estrutura, você precisa verificar os valores NULL nas chaves que estão dentro de um array — estruturas que guardam dados — ou objeto PHP. Isso muitas vezes pode ser mal endereçado e resultar em muitos erros fatais de tempo de execução.

Antes do surgimento do PHP 7, a solução proposta era a função isset, que foi útil por vários anos. No entanto, quando grandes quantidades de dados precisam ser acessadas, a função se mostrou um pouco inútil. Agora, com a última versão, o PHP adotou o operador NULLsafe, tornando o acesso aos dados muito mais eficiente.

Considere uma avaliação de curto-circuito, onde o segundo operador só terá a chance de avaliar quando o operador anterior não tiver avaliado como NULL. Em tal cenário, toda a cadeia seria avaliada como NULL pelos operadores, se o primeiro a marcar como tal. Consequentemente, a execução da cadeia cessaria e a avaliação final seria NULL

Match Expression

Até o PHP 8, a linguagem tinha uma estrutura de controle padrão, conhecida como Switch Expression. Ele fez o trabalho que deveria fazer, que estava executando linhas de código. Agora, o PHP 8 trouxe consigo uma versão refinada do Switch Expression, conhecido como Match Expression — ou expressão de correspondência —, que faz um trabalho melhor.

A finalidade das expressões de correspondência é resolver valores. Permite definir o valor de uma variável com o valor de retorno. Isso significa que ele:

  • não precisa de instruções break;
  • combina condições;
  • usa comparações estritas de tipos;
  • não requer palavras-chave adicionais.

Esse novo recurso facilitou a vida dos desenvolvedores, pois simplifica e protege a codificação com uma semântica mais segura que encontra a comparação como uma verificação de identidade.

Tipos de interseção

Você não terá que se preocupar em criar uma interface quando precisar passar uma implementação funcional em duas ou mais interfaces diferentes. Sim, o PHP 8 introduziu tipos de interseção puros que tornam o sistema orientado a objetos da linguagem mais robusto.

Esses tipos de interseção têm a capacidade de combinar diferentes interfaces em uma, dando a você a oportunidade de ser mais elaborado com seu código, pois a criação de novos tipos se tornou bastante conveniente. Você também economizará muito mais tempo e eficiência, quando olhar para o quadro maior.

Atributos de classe

O PHP versão 8 também suporta atributos de classe. Esses pedaços de código simplificam a análise e o uso de anotações de classe nos metadados. Eles não requerem uma biblioteca de terceiros para especificar metadados para uma classe.

Eles são extremamente úteis, pois podem ser colocados em propriedades de classe. Essa habilidade adicional os torna ideais para:

  • descoberta de plug-ins;
  • manipuladores de rotas;
  • assinantes de evento.

Em termos de modernização do PHP, atributos de classe são um grande passo. Sem a necessidade de usar docblocks como uma forma padrão, os desenvolvedores poderão construir sistemas melhores com a linguagem.

Claro, existem muitos outros recursos e funcionalidades que fazem parte do PHP 8, o que torna a linguagem muito mais confiável, moderna e eficiente. De qualquer forma, é importante ter em mente que a indústria de tecnologia está melhorando constantemente. Isso quer dizer que, como profissionais de TI, devemos estar cientes de tudo o que pode facilitar nosso trabalho. As atualizações geralmente são uma delas.

Gostou deste artigo? Assine nossa newsletter e receba outros conteúdos sobre tecnologia diretamente no seu e-mail!