Dev (Back & Front)ARTIGO

PHP 7.3 e PHP 8: o que esperar das próximas versões

O autor apresenta o que há de novo e fala sobre as principais mudanças para o PHP 7.3, bem como data de lançamento e o que esperar do PHP 8.

PHP 7.3 e PHP 8: o que esperar das próximas versões
Imagem: Fernando Silva

O PHP continua sendo a linguagem mais popular do lado do servidor para criar sistemas. Com uma participação de mercado estimada em 80%, a linguagem de programação de vinte e poucos anos está em toda parte. O PHP evoluiu, e as próximas principais etapas são o lançamento da versão 7.3.0, prevista para o final deste ano e as especulações sobre o PHP 8.0.0 com a compilação JIT (just in time).

A última grande versão do PHP foi 7.0.0. Esta versão foi um marco importante com desempenho significativamente aprimorado e menor uso de memória. Desde a versão 7.0, houveram dois lançamentos adicionando recursos: 7.1, em 2016 e 7.2, em 2017.

Mas, assim como ocorre com os estados de versionamento semântico, não pode haver alterações significativas nas versões principais com o patch de versão semântica (major.minor.patch). A próxima versão secundária, PHP 7.3, está prevista para ser lançada no final de 2018.

O lançamento do PHP 8.0 ainda não está agendado, mas como é um grande salto, levará alguns anos. A partir de agora, também não há detalhes dos recursos, mas estima-se que a programação esteja a anos de distância.

Algumas especulações definem o lançamento do PHP 8.0.0 para setembro de 2021:

O que se tornará obsoleto no PHP 7.3?

A RFC Deprecations for PHP 7.3 mostra algumas funcionalidades, no qual o uso será desencorajado, pois serão retiradas ou substituídas no PHP. Conforme o RFC, estas funcionalidades deverão ser removidas no mais tardar na versão 8.0.

Abaixo, algumas das funcionalidades que se tornarão obsoletas:

  • Extensão WDDX;
  • Alias de função mbstring usando um prefixo mb_ (por exemplo, mb_ereg);
  • mb_detect_encoding() sem strict mode;
  • Funções strip_tags() e fgetss();
  • Função image2wbmp.

Principais novidades que entrarão no PHP 7.3

O PHP 7.3 será oficialmente lançado em novembro de 2018 e trará diversas novidades. Algumas das principais:

  • Flexibilidade de sintaxe Heredoc e Nowdoc;
  • Permitir vírgula à direita em chamadas de função e método;
  • Opção para fazer json_encode e json_decode lançar exceções em erros;
  • Atribuições de referências em list();
  • Função is_countable().

Todos os outros RFC’s aprovados, que estão sendo implementados na versão 7.3, você poderá ver aqui, inclusive, com exemplos de código.

Estado de Just In Time (JIT) previsto para o PHP 8

A compilação Just In Time é uma maneira de otimizar o código de execução. É um método popular usado pela Java Virtual Machine (JVM), bem como a popular V8 JavaScript VM do Google.

Inicialmente, o desenvolvimento do PHP antes da evolução atual (PHP 7.x) se concentrava em melhorar o desempenho do PHP usando um JIT. Esse esforço resultou em melhorias substanciais nos benchmarks, mas provou fornecer pequenos aperfeiçoamentos em aplicações do mundo real, como WordPress ou Joomla.

Depois que o trabalho foi feito para o PHP 7.0, fornecendo melhorias significativas, as otimizações no desempenho nas versões 7.1 e 7.2 foram bastante modestas. É por isso que a equipe está trabalhando na implementação do JIT novamente. Existem alguns resultados encorajadores, mas ainda não há uma análise profunda sobre o projeto PHP JIT.

 

Just sent an email to internals@, detailing what I hope could be the beginning of a blueprint for PHP 8. It’s a small step in what would hopefully be a long and fruitful journey.

Here’s a sneak peak for the JIT part: pic.twitter.com/GMXXWvtRly

— Zeev Suraski (@zeevs) 25 de junho de 2018

Como o PHP é um software de código aberto, os desenvolvedores podem baixar e compilar o código-fonte. No entanto, muitas pessoas evitam a possibilidade de compilar software por conta própria. Felizmente, há uma imagem do Docker disponível, que permite aos desenvolvedores experimentarem as compilações mais recentes do PHP JIT com facilidade:

Este repositório ajuda a testar o php com suporte a jit experimental. Ele foi criado inspirado no tweet acima, que fala sobre 54% de melhoria no desempenho. – Imagem do Docker do PHP com suporte experimental ao JIT

Tanto o JIT quanto o 8.0.0 aparecem no futuro do PHP, mas ambos são recursos significativos que permanecem no futuro. E, especialmente para o JIT, os processos de vida curta do PHP não são ideais para a implementação do JIT ; isso é comparado a processos em execução contínua como o Node.js ou o Java.

Na página dos RFC’s você encontra a documentação completa de todas as features e versões, inclusive com exemplos. A versão 7.3 está em desenvolvimento, então tem features que ainda estão em discussão, e claro, não se limita apenas a novas features, então vale muito a pena conferir a documentação.

Isso é tudo por enquanto, mas se você se deparar com outras mudanças que não são mencionadas aqui, dúvidas ou sugestões, deixe um comentário abaixo.

Obrigado pela leitura!

Fernando SilvaAutor

Analista de Desenvolvimento na KingHost, graduado em Análise e Desenvolvimento de Sistemas (ADS) pela Faculdade Senac Porto Alegre, onde ganhou o Prêmio Keller de melhor trajetória acadêmica. Atualmente faz pós-graduação em Segurança Cibernética pela UFGRS, além disso, é um dos coordenadores da comunidade PHP-RS, é entusiasta Open Source e Software Livre.

Ver perfil