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!